【发布时间】:2014-01-08 09:47:54
【问题描述】:
当我使用 new Date(2012,12,28,10, 57, 00) 时,其结果为 2012 年 1 月 28 日星期六 10:57:00 GMT+0530(印度标准时间)。为什么月份是一月而不是十二月。请帮助我以正确的方式获取日期。
【问题讨论】:
-
没有
12th月份...从0到11。
标签: javascript jquery date datetime
当我使用 new Date(2012,12,28,10, 57, 00) 时,其结果为 2012 年 1 月 28 日星期六 10:57:00 GMT+0530(印度标准时间)。为什么月份是一月而不是十二月。请帮助我以正确的方式获取日期。
【问题讨论】:
12th 月份...从0 到11。
标签: javascript jquery date datetime
见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date。
构造函数new Date() 中的月份参数为“0”索引。所以 12 月是 12 月(索引为 11)+ 1 个月 = 下一年的 1 月。
【讨论】:
表示月份的整数值,从 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)
这里month 和year 都得到递增
所以我添加了这个条件
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;
终于看到了
【讨论】: