【问题标题】:Javascript Date object issue [duplicate]Javascript日期对象问题[重复]
【发布时间】:2018-10-10 16:32:27
【问题描述】:

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

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

如果我将格式从 yyyy-mm-dd 转换为 mm-dd-yyyy,有人可以帮助我理解为什么会产生这种差异吗?

【问题讨论】:

  • 我建议查看 moment.js 或 date.js

标签: javascript date compare


【解决方案1】:

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

解析第二种格式时假设它位于您当地的时区,因此当地时间午夜并打印相同。

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 2013-05-28
      • 2012-06-30
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多