【发布时间】:2014-09-26 12:09:09
【问题描述】:
我正在创建一个便士拍卖网站,我的主页上有几个拍卖。每个拍卖都会根据 mysql 日期格式中的日期获取自己的计时器,格式为“Y-m-d H:i:s”。
代码运行良好,并且计时器在 Firefox 和 Chrome 上都开始完美倒计时,但在 Safari 中,数字显示 NaN:NaN:NaN
这是我的函数,它使用jquery countdown plugin by Keith Wood:
function updateTimers() {
$( ".il-timer" ).each(function( index ) {
var timer = $(this);
var end_date = $(timer).attr('data-end-date');
var auction_id = $(timer).attr('data-auction-id');
var end = new Date(Date.parse(end_date,"yyyy-mm-dd hh:mm:ss"));
$('#auction_listing_timer_'+auction_id).countdown({until: end, format: 'HMS', compact: true, description: ''});
//Do it every 10 seconds...
setTimeout(function(){
updateTimers();
}, 10000);
});
};
【问题讨论】:
-
您的
end_date看起来不是有效的 ISO 格式字符串,因为非 ISO 格式字符串may or may not result in NaN->.parse()。注意-.parse()没有为您的格式提供第二个参数。您可以在w3.org/TR/NOTE-datetime 找到 ISO 有效格式 -
在我的例子中,我已经将这种日期格式“2020-12-31 00:00:00”存储在这个变量“inlineDate”中。我使用 inlineDate = inlineDate.replace(/\-/g, "/"); 用“/”对“-”进行了字符串替换。问题就解决了。
标签: javascript php jquery datetime jquery-countdown