Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期对象问题_Javascript_Date_Compare - Fatal编程技术网

Javascript日期对象问题

Javascript日期对象问题,javascript,date,compare,Javascript,Date,Compare,基本上,我的要求是将服务器通过的日期与用户选择的日期进行比较,并显示相同日期的验证 我试图将服务器日期转换为Javascript日期对象,发现了一些有线行为 有人能帮我理解为什么我将格式从yyyy-mm-dd转换为mm-dd-yyyy会有这种不同吗?第一个示例似乎是解析日期字符串,就像它是UTC格式(距离您的本地时区4小时)一样,然后当您打印它时,它会被转换回来 第二种格式的解析假设它在本地时区,所以午夜本地时间和打印相同 如果没有指定格式,JavaScript会根据给定的字符串进行猜测。它为

基本上,我的要求是将服务器通过的日期与用户选择的日期进行比较,并显示相同日期的验证

我试图将服务器日期转换为Javascript日期对象,发现了一些有线行为


有人能帮我理解为什么我将格式从yyyy-mm-dd转换为mm-dd-yyyy会有这种不同吗?

第一个示例似乎是解析日期字符串,就像它是UTC格式(距离您的本地时区4小时)一样,然后当您打印它时,它会被转换回来

第二种格式的解析假设它在本地时区,所以午夜本地时间和打印相同

如果没有指定格式,JavaScript会根据给定的字符串进行猜测。它为这两个字符串做出了不同的选择

在第一种情况下,它认为您的意思是
2018-04-30 UTC
,当它在您的本地时区打印时,它比第二种情况(它认为
2018-04-30 UTC-4
)早四个小时


有一个关于避免使用
date
构造函数和
date.parse
函数解析日期/时间字符串的方法,由于这种模糊性,您可能会在不同的浏览器中获得不同的行为。

如果使用/分隔时间,则不会发生错误。ie:MM/DD/YYYY, 日期时间格式在不同浏览器中的工作方式不同


我建议看一下moment.js或date.js