【问题标题】:Javascript Date -> numeric vs stringJavascript日期->数字与字符串
【发布时间】:2016-07-12 19:35:41
【问题描述】:
    var date1 = new Date('1900-01-01');
    console.log(date1);

产量: “1900 年 1 月 1 日星期一 01:00:00 GMT+0100(西欧标准时间)”

    var date2 = new Date(1900,1,1);
    console.log(date2);

产量: “1900 年 2 月 1 日星期四 00:00:00 GMT+0100(西欧标准时间)”

Fiddle

但我不明白为什么!

【问题讨论】:

    标签: javascript date


    【解决方案1】:

    您可以看到月份差异,因为当您将各个组件(年、月、日等)传递给Date 对象构造函数时,您必须考虑月份参数应该以0 开头:

    console.log( new Date('1900-01-01').getMonth() );  // 0
    

    除了一月/二月之外,日期不应有任何差异。

    MDN: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date

    【讨论】:

    • @RobbyCornelissen 它不应该显示任何时差,只显示月差。
    • 同意。它不应该。但这就是问题所在......也许是错字?
    • @RobbyCornelissen 我倾向于认为这是一个错字。
    • @crosstalk Fiddle 将准确显示 您的 浏览器将显示的内容。就我而言,时间是一样的:i.gyazo.com/d949455b043ffc7f0929d278aeb618ef.png.
    • 应该更清楚 - 只是 1 月/ 2 月的事情让我感到困惑 - 但你是说应该是这样的?
    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多