基本上我的要求是将服务器传递日期与用户选择的日期进行比较,并显示相同的验证。
我试图将服务器日期转换为Javascript日期对象,我发现了一些有线行为,
如果我将格式从yyyy-mm-dd翻转到mm-dd-yyyy,有人可以帮我解释为什么它会有所不同?
答案 0 :(得分:0)
看起来第一个示例是解析日期字符串,就好像它是UTC(距本地时区4个小时?)然后当你打印它时会被转换回来。
第二种格式是在你当地时区解析,因此当地时间午夜并打印出来。
如果没有指定格式,JavaScript会根据给定的字符串进行猜测。它为这两个字符串做出了不同的选择。
它认为你的意思是2018-04-30 UTC
在第一种情况下,当它打印回你当地的时区时,它比它认为是2018-04-30 UTC-4
的第二种情况提前四小时。
有一个note on MDN关于使用Date
构造函数和Date.parse
函数来避免解析日期/时间字符串,因为这种歧义,您可能会在不同的浏览器中获得不同的行为。
答案 1 :(得分:0)