我可以用这种类型的字符串创建日期对象吗?在JavaScript中?

时间:2012-09-17 08:27:13

标签: javascript date

您好我有一个XML文件和一个“创建于”标签,可以像这样存储日期和时间 2012-09-15 02:08:46 我正在尝试创建一个新的Date对象,以便我可以轻松打印出日期和月份。但它不喜欢这种格式。

类似这样的事情

var theDate = new Date(Date.parse(storyDate));

console.log(theDate.getMonth());
theDate = theDate.getDate() + ", " + theDate.getMonth();

感谢

更新:我可以让它在Chrome中运行,但不能在Firefox中运行。 更新:找到答案,谢谢大家。为什么要downvote?结果证明这是一个合理的问题。我错过了一个T.

2 个答案:

答案 0 :(得分:2)

var theDate = new Date(Date.parse(storyDate.replace(' ', 'T')));

日期和时间之间需要'T'。(至少在FireFox中)

Valid DateTime formats

答案 1 :(得分:1)

我会使用正则表达式手动解析日期。

var dateStr = "2012-09-15 02:08:46"
var dateRegex = /^(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2}):(\d{2})$/
var dateParts = dateRegex.exec(dateStr)
var year = dateParts[1], 
    month = parseInt(dateParts[2], 10) - 1,
    day = dateParts[3],
    hour = dateParts[4],
    minutes = dateParts[5],
    seconds = dateParts[6];
var date = new Date(year, month, day, hour, minutes, seconds);
//
console.log(date.getMonth())
console.log(date.getDate() + ", " + date.getMonth());