我有一个从php检索的变量,并存储在一个名为activity.ActivityDate
的变量中。当我做的时候
console.log(activity.ActivityDate);
它输出14/06/2016
,这是一种有效的格式,可以转换为日期对象。但是当我做的时候
d = new Date(activity.ActivityDate);
console.log(d);
我的日期无效。但是当我做的时候
e = new Date('14/06/2016');
console.log(e);
我确实得到了一个合适的约会对象。
我的activity.ActivityDate
字符串是否有问题,或者某种方式将其转换为正确的字符串?
答案 0 :(得分:3)
不同的浏览器可以不同地解析日期字符串,如MDN所述,不建议使用Date()
构造函数来解析日期字符串。在您的情况下,您提供的格式为DD/MM/YYYY
,但您的浏览器可能期望MM/DD/YYYY
。
注意:由于浏览器差异和不一致,强烈建议不要使用Date构造函数(和Date.parse,它们是等效的)解析日期字符串。
最好的做法是在所有浏览器中都可以使用"/"
将字符串溢出并将数字转换为整数,然后使用Date(year, month, day)
构造函数的构造函数格式。
例如:
var date = '14/06/2016';
var items = date.split('/');
var day = +items[0]; // Note +(item) means convert to interger
var month= +(items[1] - 1); // month goes from 0-11 rather than 1-12.
var year = +items[2];
e = new Date(year, month, day);
console.log(e);