我需要在倒计时计数器上为特定的未来日期时间工作。我设法使用以下计数器 http://www.blacktie.co/demo/counter/并在我几乎完成时对其进行了一些小的更改,我注意到此计数器使用本地系统日期,当我更改系统日期时,它会反映在计数器上。如何修改此脚本,使其在启动计数器而不是本地日期时从服务器获取 GMT 日期。
这样,每个用户无论身在何处,都可以看到甚至在印度发生的确切日期时间。
小提琴示例http://jsfiddle.net/635hf1je/1/
脚本
(function ($) {
/**
* Set your date here (YEAR, MONTH (0 for January/11 for December), DAY, HOUR, MINUTE, SECOND)
* according to the GMT+0 Timezone
**/
var launch = new Date(2014, 11, 04, 12, 00);
/**
* The script
**/
var message = $('#message');
var days = $('#days');
var hours = $('#hours');
var minutes = $('#minutes');
var seconds = $('#seconds');
setDate();
function setDate() {
var now = new Date();
if (launch < now) {
days.html('<h1>0</H1><p>Day</p>');
hours.html('<h1>0</h1><p>Hour</p>');
minutes.html('<h1>0</h1><p>Minute</p>');
seconds.html('<h1>0</h1><p>Second</p>');
message.html('coming soon...');
} else {
var s = -now.getTimezoneOffset() * 60 + (launch.getTime() - now.getTime()) / 1000;
var d = Math.floor(s / 86400);
days.html('<h1>' + d + '</h1><p>Day' + (d > 1 ? 's' : ''), '</p>');
s -= d * 86400;
var h = Math.floor(s / 3600);
hours.html('<h1>' + h + '</h1><p>Hour' + (h > 1 ? 's' : ''), '</p>');
s -= h * 3600;
var m = Math.floor(s / 60);
minutes.html('<h1>' + m + '</h1><p>Minute' + (m > 1 ? 's' : ''), '</p>');
s = Math.floor(s - m * 60);
seconds.html('<h1>' + s + '</h1><p>Second' + (s > 1 ? 's' : ''), '</p>');
setTimeout(setDate, 1000);
message.html('coming soon...');
}
}
})(jQuery);
你在寻找这个:http://jsfiddle.net/lotusgodkk/635hf1je/2/吗?
只需将 Javascript Date 对象转换为 UTC。
var t = new Date();
var now = new Date(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate(), t.getUTCHours(), t.getUTCMinutes(), t.getUTCSeconds());
在setDate()
功能中。
您可以使用 php 来获取服务器时间:
var now = <?php echo date("Y-m-d H:i:s");// Format it as you need it ?>