我需要在倒数计数器上处理特定的未来日期时间。我设法使用以下计数器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);
答案 0 :(得分:1)
您是否在寻找这个: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()
函数中。
答案 1 :(得分:0)
您可以使用php获取服务器时间:
var now = <?php echo date("Y-m-d H:i:s");// Format it as you need it ?>