将字符串日期转换为Date对象

时间:2016-06-09 16:51:42

标签: javascript date

我有一个从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字符串是否有问题,或者某种方式将其转换为正确的字符串?

1 个答案:

答案 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);

相关问题