Set Javascript time with php server time?

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 ??

Answers:

Answer

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.

Answer

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.

Answer

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);
Answer

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.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.