javascript - 使用 Javascript 在 safari 中获取 NAN 形式的日期值

标签 javascript jquery date safari

我在使用 Javascript 比较某些日期时遇到了这个问题。我仅在 Safari 上遇到此问题。它在 Chrome 上运行良好。让我先解释一下我的代码。

var date='2016-05-21';
var to='2016-05-23';
var eventdate='2016-06-01 16:48:51';
function getMidnight(date) {
    return (new Date(new Date(date.replace(/-/g, "/")).getFullYear(), new Date(date.replace(/-/g, "/")).getMonth(), new Date(date.replace(/-/g, "/")).getDate())); 
}
from = getMidnight(date);
to = getMidnight(to).getTime() + (24 * 3600-1) * 1000;
var event1=getMidnight(new Date(eventdate) + 24 * 3600 * 1000).getTime();   var event2=(new Date(from)).getTime();
var event3=getMidnight(eventdate).getTime();
var event4=(new Date(to)).getTime();
console.log('events',event1,event2,event3,event4);

我正在尝试打印控制台消息。在 Chrome 控制台中,其显示如下所示。

events 1464719400000 1463769000000 1464719400000 1464028199000

但是在 Safari 浏览器上它无法正确显示并打印如下所示。

events NAN 1463769000000 1464719400000 1464028199000

它在 Safari 中提供 NAN。我希望它在 Safari 中打印出与在 Chrome 中相同的内容。如有任何帮助,我们将不胜感激。

最佳答案

为了使您的问题更容易,您的问题是:

new Date('2016-06-01 16:48:51')

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

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. If you include T it works:

new Date('2016-06-01T16:48:51')

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

如果您处理很多这样的情况,我会建议使用 moment ,它似乎可以很好地处理这种情况,无论有或没有 T: 从字符串解析。此外,使用 momentjs,您的整个示例会更容易:

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

关于javascript - 使用 Javascript 在 safari 中获取 NAN 形式的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701363/

相关文章:

javascript - 如何检查客户端 JavaScript 代码的语法错误?

javascript - Bootstrap 3 - 将页面刷新到特定选项卡

javascript canvas 重新缩放并在图像上绘图

幻灯片放映的 Javascript 语法错误

swift - 如何快速创建当前星期日期的数组

Java - 如何进行 JSON 日期验证?

javascript - Imagepicker React Native 在 iOS 上崩溃但在 Android 上运行良好

javascript - jquery使用div/span ID选择器和 anchor 标记类获取 anchor 标记中的href

javascript - 如何在 Jquery 中自动进行转换?

PHP:如何使用 Y-m-d 获取日?