Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用javascript初始化日期对象_Javascript_Date_Object - Fatal编程技术网

用javascript初始化日期对象

用javascript初始化日期对象,javascript,date,object,Javascript,Date,Object,我正在JS中格式化日期对象,但日期会以以下方式更改其值: str = '05-10-2013'; s = str.split('-') nbr = Number(s[0]) + '-' + (Number(s[1]) - 1) + '-' + Number(s[2]); // nbr has now the value : 5-9-2013 // so I create the date object from the str var dateObj =

我正在JS中格式化日期对象,但日期会以以下方式更改其值:

str = '05-10-2013';
 s = str.split('-')
 nbr = Number(s[0]) + '-' + (Number(s[1]) - 1) + '-' + Number(s[2]);
 // nbr has now the value : 5-9-2013
 // so I create the date object from the str               
 var dateObj = new Date(nbr);
 // the dateObj has the value: Tue Apr 04 1911 00:00:00 GMT+0200 (Paris, Madrid (heure d’été))
我对date对象创建时初始化date值的原因有一些难以理解的理解


我做错了什么?

似乎日期字符串的顺序正好相反,您可以用

var str = '05/10/2013';
var date = new Date(str.split('/').reverse().join('/'));
date.setMonth(date.getMonth() - 1);

不需要再次将其转换回字符串,只需正常地将其传递到函数中即可

str = '05/10/2013';
s = str.split('/')
dateObj = new Date(s[2], s[1]-1, s[0]);

//dateObj: Date {Sat Oct 05 2013 00:00:00 GMT+0100 (GMT Daylight Time)}

可以使用str变量作为日期对象构造函数的参数:

var dateObj = new Date(str); 
带字符串参数的日期构造函数接受月/日/年;因此,如果您希望2013年10月5日与10月5日匹配,请使用“10/05/2013”字符串。或:

str = '05/10/2013';
s = str.split('/');             
var dateObj = new Date(s[1]+'/'+s[0]+'/'+s[2]);

初始日期是指10月5日还是5月10日?当date接受年/月/日构造函数时,为什么要传递字符串?真的!当日期使用
-
作为分隔符时,为什么要使用
-
进行拆分?@adeneo我尝试使用“/”但得到的是NaN,所以我认为可能是分隔符。@Alucard您得到
NaN
是因为您试图将一个没有
-
字符的字符串拆分为
-
,因此您的
s[0]
正是
05/10/2013
在铸造到数字后变成
NaN
。//nbr现在有了值:5-9-2013你的解决方案是什么?萨米莎-为什么我需要解决这个问题?我不知道他为什么在问题中提到那种事情,但他正在做[1]-1@samitha-哦,我明白了,减去月,天,只要date对象被初始化,任何事情都会以通常的方式进行。它是相反的。。。非常感谢。