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