gpt4 book ai didi

javascript - Jquery 倒计时在 Safari 中显示 NaN,在 Chrome/Firefox 中工作正常

转载 作者:行者123 更新时间:2023-11-30 08:42:25 30 4
gpt4 key购买 nike

我正在创建一个便士拍卖网站,主页上有几个拍卖。每个拍卖都会根据 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);

});
};

最佳答案

一些事情:

  • Date.parse 函数没有第二个参数。您传递的值 "yyyy-mm-dd hh:mm:ss" 将被忽略。

  • JavaScript 中的日期解析依赖于实现。 Firefox 选择不解析该特定格式的值。

  • new Date(Date.parse(...)) 是多余的。您可以只将字符串传递给日期构造函数。

  • 一个快速的解决方法是在解析之前用斜杠替换破折号:

    var end = new Date(end_date.replace(/-/g, '/'));
  • 更好的方法是使用类似 moment.js 的库,因此您可以控制用于解析的格式:

    var end = moment(end_date, 'YYYY-MM-DD HH:mm:ss').toDate();

关于javascript - Jquery 倒计时在 Safari 中显示 NaN,在 Chrome/Firefox 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25111557/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com