使用Javascript在safari中将日期值获取为NAN
我在使用Javascript比较一些日期时遇到了这个问题。我只在Safari上收到这个问题。它在使用Javascript在safari中将日期值获取为NAN,javascript,jquery,date,safari,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()
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
events NAN 1463769000000 1464719400000 1464028199000
但在Safari浏览器上,它的显示不正确,打印方式如下所示
events 1464719400000 1463769000000 1464719400000 1464028199000
events NAN 1463769000000 1464719400000 1464028199000
它在
Safari
中给出了NAN
。我希望它在Safari
中打印与在Chrome
中相同的内容。感谢您的帮助。为了让您的问题更简单,您的问题在于:
new Date('2016-06-01 16:48:51')
这在chrome中可以正常工作,但在safari中不行。mdn讨论了ECMAScript 5 ISO-8601格式支持,其中指出:
或者,日期/时间字符串可以是ISO 8601格式。例如,可以传递并解析“2011-10-10”(仅日期)或“2011-10-10T14:48:00”(日期和时间)。
如果您包括T,它将起作用:
您可以使用新日期('2014-02-18T15:00:48'。替换(/\s/,'T'))
如果您处理很多这样的情况,我建议您使用矩,无论是否使用T:从字符串解析,矩似乎都能很好地处理这种情况。此外,使用momentjs,整个示例更简单:
var minutes = moment().diff("2014-02-18 15:00:48", 'minutes');
为了使您的问题更简单,您的问题在于:
new Date('2016-06-01 16:48:51')
这在chrome中可以正常工作,但在safari中不行。mdn讨论了ECMAScript 5 ISO-8601格式支持,其中指出:
或者,日期/时间字符串可以是ISO 8601格式。例如,可以传递并解析“2011-10-10”(仅日期)或“2011-10-10T14:48:00”(日期和时间)。
如果您包括T,它将起作用:
您可以使用新日期('2014-02-18T15:00:48'。替换(/\s/,'T'))
如果您处理很多这样的情况,我建议您使用矩,无论是否使用T:从字符串解析,矩似乎都能很好地处理这种情况。此外,使用momentjs,整个示例更简单:
var minutes = moment().diff("2014-02-18 15:00:48", 'minutes');
我没有从上面的答案中得到任何答案。我没有从上面的答案中得到任何答案。