【问题标题】:javascript date issuejavascript日期问题
【发布时间】:2011-10-07 22:21:12
【问题描述】:

为什么我在 javascript 中创建了一个新的日期对象 mydate = new Date('2011-10-03'); 并打印为 10 月 2 日? Sun Oct 02 2011 18:00:00 GMT-0600 (MDT)

如果我将日期设置为 10 月 3 日,我打电话给mydate.getDate(); 时不应该得到 3 吗?

我错过了什么?

【问题讨论】:

    标签: javascript date timezone


    【解决方案1】:

    我相信您的日期差一,因为它是在 UTC 时间解析的,并且您在山区时间显示它(我假设您是当地时间)。这是每个 ECMA 规范。

    请参阅此处的 Javascript 规范第 15.9.3.3 节:

    http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

    【讨论】:

    • 有没有办法指定我希望它在本地时间解析(无论用户浏览器碰巧在哪里)?
    • 我想是的,也许像:var myDate = new Date('October 3, 2011 EST');
    • 哦,需要在浏览器配置的时区中解析。是的,这可能会变得很棘手,呵呵。
    【解决方案2】:

    试试这个

    mydate = new Date('2011/10/03');
    

    【讨论】:

    • 太棒了!但这是为什么呢?只需更改日期格式字符串,它就可以按预期工作?
    【解决方案3】:

    我认为它将日期设置为2011-10-03,将时间设置为00:00:01 UTC。

    打印正在将该日期对象转换为您的当地时间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多