Reputation: 41
I have a situation where I want the server time to be displayed on a web page. At present I keep it simple and just do this
<?php
$CTIME=date ("g:i a");
?>
This works great- except I would prefer it if it updated by itself without the need to refresh the page. I was thinking perhaps there is a way I can set the javascript time function with the time from a php script- but I've got no idea as to how I could go about doing this.
Perhaps I'm thinking about this wrong... maybe there is another solutions I'm not thinking of, Any ideas ??
Upvotes: 4
Views: 2660
Reputation: 31006
Use your base-time to calculate the current time on the fly (without using any additional and potentially slow/expensive request; it does not even require jQuery):
var getServerTime = (function () {
var baseTime = <?php echo time() * 1000; /* convert to milliseconds */ ?>,
startTime = new Date().getTime();
return function () {
return baseTime + (new Date().getTime() - startTime);
};
}());
This function returns the current time (in milliseconds) based on the server-side time. You can update your site an a regular interval and use this function to determine the current server-side time like this:
// update the site every minute
setInterval(function () {
var currentServerTime = getServerTime();
// update everything (format date or something)
}, 60 * 1000);
Upvotes: 2
Reputation: 198199
Try this:
<javascript>
var ctime = '<?php echo date ("g:i a"); ?>';
</javascript>
Then let a timer increase the value on the javascript side. It's not very precise, but if I saw that right you need minutes only, not seconds, so precision is probably not an issue.
Upvotes: 3
Reputation: 10880
I believe you can easily find some javascript code over the internet which shows a running clock on your site. On load of the page have PHP set the initial start time for this javascript snippet and i believe you are good to go.
Upvotes: 0
Reputation: 28184
Here is a jQuery plugin for displaying a clock:
http://plugins.jquery.com/project/jqClock
Just initialize it using the time coming back from the server. It automatically updates every second on the client side.
Upvotes: 3