从字符串中解析自定义日期

时间:2012-06-04 19:21:28

标签: javascript

  

可能重复:
  Help parsing ISO 8601 date in Javascript

我有一组字符串,所有字符串都类似:2012-05-31T00:00:00.0000000

我想从中提取的是年(2012),月(05)和日(31),然后根据这些数据构建一个javascript Date对象。

解析此数据的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

我能想到的最简单的方法是使用正则表达式,并将值传递给Date constructor

function parseISODate(dateString) {
    var match = /^(\d{4})-(\d\d)-(\d\d)/.exec(dateString);
    return new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]));
}

console.log(parseISODate('2012-05-31T00:00:00.0000000'));
// Date {Thu May 31 2012 00:00:00 GMT+0200}

当然,你总是可以扩展它以匹配时间......

答案 1 :(得分:-1)

编辑(UTC):

var origDate = new Date('2012-05-31T00:00:00.0000000');
var newDate = new Date(origDate.getUTCFullYear(), origDate.getUTCMonth(), origDate.getUTCDate(), 0, 0, 0, 0);