用javascript初始化日期对象
我正在JS中格式化日期对象,但日期会以以下方式更改其值:用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 =
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对象被初始化,任何事情都会以通常的方式进行。它是相反的。。。非常感谢。