日期转换问题

时间:2014-01-08 09:47:54

标签: javascript jquery date datetime

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

2 个答案:

答案 0 :(得分:0)

表示月份的整数值,从0 January 11 December开始。

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

答案 1 :(得分:0)

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

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