【问题标题】:Date Conversion Issues日期转换问题
【发布时间】:2014-01-08 09:47:54
【问题描述】:

当我使用 new Date(2012,12,28,10, 57, 00) 时,其结果为 2012 年 1 月 28 日星期六 10:57:00 GMT+0530(印度标准时间)。为什么月份是一月而不是十二月。请帮助我以正确的方式获取日期。

【问题讨论】:

  • 没有12th 月份...从011

标签: javascript jquery date datetime


【解决方案1】:

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

构造函数new Date() 中的月份参数为“0”索引。所以 12 月是 12 月(索引为 11)+ 1 个月 = 下一年的 1 月。

【讨论】:

    【解决方案2】:

    表示月份的整数值,从 0 开始,January11December

    再次12 Jan 并继续......

    更新:

    根据您的comment

    var date = new Date(2012, 12, 28, 10, 57, 00)
    //retruns Mon Jan 28 2013 10:57:00 GMT+0530 (India Standard Time) 
    

    这里monthyear 都得到递增

    所以我添加了这个条件

    if (date.getMonth() === 0) {
        //I'm setting date to Dec and decrease year by 1
        date.setMonth(11);
        date.setFullYear(date.getFullYear() - 1)
    } else {
        //for other decrease month by 1
        date.setMonth(date.getMonth() - 1);
    }
    

    如果你要格式化为MM/dd/yyy HH:mm:ss,我用过类似

    var MM = ("0" + (date.getMonth() + 1)).slice(-2);
    var dd = ("0" + date.getDate()).slice(-2);
    var yyy = date.getFullYear();
    var HH = ("0" + date.getHours()).slice(-2);
    var mm = ("0" + date.getMinutes()).slice(-2);
    var ss = ("0" + date.getSeconds()).slice(-2);
    var final = MM + "/" + dd + "/" + yyy + " " + HH + ":" + mm + ":" + ss;
    

    终于看到了

    Fiddle

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多