Javascript日期对象问题

时间:2018-04-30 14:44:33

标签: javascript date compare

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

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

enter image description here

如果我将格式从yyyy-mm-dd翻转到mm-dd-yyyy,有人可以帮我解释为什么它会有所不同?

2 个答案:

答案 0 :(得分:0)

看起来第一个示例是解析日期字符串,就好像它是UTC(距本地时区4个小时?)然后当你打印它时会被转换回来。

第二种格式是在你当地时区解析,因此当地时间午夜并打印出来。

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

它认为你的意思是2018-04-30 UTC在第一种情况下,当它打印回你当地的时区时,它比它认为是2018-04-30 UTC-4的第二种情况提前四小时。

有一个note on MDN关于使用Date构造函数和Date.parse函数来避免解析日期/时间字符串,因为这种歧义,您可能会在不同的浏览器中获得不同的行为。

答案 1 :(得分:0)

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

enter image description here