javascript日期转换显示错误的月份

时间:2013-10-08 09:33:55

标签: javascript date formatting

在转换回长整数后的以下日期转换日期表示十月而不是九月

 var date = 2013-09-23 18:31
 startdate = getTimeStamp(date); //1382533260000

现在

 t=1382533260000   
 rt = new Date(t)
 //Wed Oct 23 2013 18:31:00 GMT+0530 (India Standard Time)


 function getTimeStamp(strDate) { 
            var a1=strDate.split(" ");
            var d1=a1[0].split("-");
            var t1=a1[1].split(":");
            var dtObj = new Date(d1[0],d1[1],d1[2],t1[0],t1[1]);
            return dtObj.getTime();
 }

3 个答案:

答案 0 :(得分:2)

在JavaScript中,月份编号为0-11。

如果你要从这样的组件解析到Date构造函数,你将不得不从数字中减去一个:

 function getTimeStamp(strDate) { 
            var a1=strDate.split(" ");
            var d1=a1[0].split("-");
            var t1=a1[1].split(":");
            var dtObj = new Date(d1[0],d1[1] - 1,d1[2],t1[0],t1[1]);
            return dtObj.getTime();
 }

答案 1 :(得分:0)

月份从零开始,因此1月份为零,2月份为1,等等。

因此,您需要在d1[1]-1构造函数中使用new Date()

答案 2 :(得分:0)

Javascript month参数从0到11开始,因此传递8意味着9月