【问题标题】:unexpected javascript date behavior意外的 javascript 日期行为
【发布时间】:2020-05-19 00:54:56
【问题描述】:

我有以下代码:

var newDate=new Date('05/22/2012');
var month=newDate.getMonth();
var day=newDate.getDate()+(-2);
var year=newDate.getYear();
document.write(month+'/'+day+'/'+year);

我预计它会返回“05/20/2012”,但它返回的是“04/20/2012”

这对我来说毫无意义 - 有人可以帮助我了解发生了什么以及如何获得正确的响应吗?

感谢您的关注!

【问题讨论】:

    标签: javascript


    【解决方案1】:

    .getMonth() 从零开始。一月对应0,二月对应1,以此类推

    截至本问题提出时,月份是 5 月,因此 .getMonth() 返回 4

    你想要.getMonth() + 1

    【讨论】:

    • 谢谢!我将前一个标记为答案只是因为它是第一个 - 显然你的答案同样有效!
    • @Dutchie432:同上! jlisham:不客气 - 我很高兴它有帮助。
    【解决方案2】:

    .getMonth() 从零开始。如0=January11=December

    试试

    var month=newDate.getMonth() + 1;
    

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 欢迎来到 Stack Overflow!您是否会考虑添加一些叙述来解释为什么此代码有效,以及是什么使它成为问题的答案?
      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2017-09-17
      • 1970-01-01
      相关资源
      最近更新 更多