我正在尝试使用http://keith-wood.name/countdown.html基于服务器的当前时间和从mysql返回的datetime变量来创建计时器倒计时。
日期已正确接收为javascript变量。
var target = '2019-05-16 14:00:00'; /* end time */
var server = '2019-05-13 16:44:42'; /* server time*/
function formatTime()函数可以正确设置时间格式,否则倒数计时将根本无效。
function formatTime(timestamp) {
var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
}
代码似乎忽略了serverSync值,而是根据用户本地时间开始倒计时。
$('#selector').countdown({serverSync: formatTime(server), until: formatTime(target), format: 'dHMS'});
我也尝试过将结果相同的倒车订单
$('#selector').countdown({until: formatTime(target), serverSync: formatTime(server), format: 'dHMS'});
如果我发出警报,则会获得正确的格式:
alert(formatTime(server));
Mon May 13 2019 16:44:42 GMT-0600 (Mountain Daylight Time)
alert(formatTime(target));
Thu May 16 2019 14:00:00 GMT-0600 (Mountain Daylight Time)
但是计数器正在从用户本地时间开始递减计数
2 days 23 hours 15 min 18 seconds
我在这里做错了什么?我还要补充一点,尽管事实是从服务器收到了正确的日期/时间-时区似乎没有。应该是EDT,而不是MDT。不知道这是否是导致错误的原因,但是我的服务器在我检查时会报告EDT
date
从命令行。