gpt4 book ai didi

javascript - Safari Javascript Date() NaN 问题 (yyyy-MM-dd HH :mm:ss)

转载 作者:可可西里 更新时间:2023-11-01 01:20:16 26 4
gpt4 key购买 nike

我的代码在 Google Chrome 中运行正常,但在 Safari 中运行不正常。

我发现我需要将 yyyy-MM-dd HH:mm:ss 转换为 ISO 8601,但我没有找到执行此操作的解决方案.


在线测试链接:http://jsfiddle.net/UVgHR/


Javascript:

$(document).ready(function() {

calculateMinutes();
setInterval(calculateMinutes, 60000);

});

function calculateMinutes() {
$('.calculateMinutes').each(function () {
var diff = Math.abs(new Date( $(this).data('timestamp') ) - new Date());
var minutes = Math.floor((diff/1000)/60);
$(this).html( minutes + ' min.' );
});
}

HTML 示例:

<span class="calculateMinutes" data-timestamp="2014-02-18 15:00:48">

最佳答案

为了让您的问题更简单,您的问题在于:

new Date('2014-02-18 15:00:48')

这在 chrome 中可以正常工作,但在 safari 中不行。 mdn 谈论 ECMAScript 5 ISO-8601 format support说:

Alternatively, the date/time string may be in ISO 8601 format. For example, "2011-10-10" (just date) or "2011-10-10T14:48:00" (date and time) can be passed and parsed.

如果你包含 T 它会起作用:

new Date('2014-02-18T15:00:48')

您可以使用 new Date('2014-02-18T15:00:48'.replace(/\s/, 'T'))

如果你处理很多这样的情况,我会推荐使用 moment无论有没有 T:parsing from string,它似乎都能很好地处理这种情况。 .此外,您的整个示例使用 momentjs 更容易:

var minutes = moment().diff("2014-02-18 15:00:48", 'minutes');

关于javascript - Safari Javascript Date() NaN 问题 (yyyy-MM-dd HH :mm:ss),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883699/

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