JavaScript正则表达式将日期/时间解析为毫秒

时间:2014-09-15 11:36:46

标签: javascript regex date date-formatting

我需要一些正则表达式的帮助,使用正则表达式将日期转换为毫秒。

我不确定我需要做什么正则表达式。

以下是一些示例日期:

  • 3 dagar,12:00:46
  • 2 dagar,8:01:00
  • 1 dag,11:34:00
  • 0 dagar,0:04:00

同样,我想要一个将这些日期解析为毫秒的正则表达式。

或者我可以使用像this这样的库来解析日期。但我对此也没有多少经验。

1 个答案:

答案 0 :(得分:2)

以下正则表达式捕获日,小时,分钟和秒。 我想你想要自1970年1月1日(纪元)以来的毫秒数。 我们使用捕获的信息初始化Date对象并提取毫秒:

var regexp = /([0-9]*) [a-z]*, ([0-9]*):([0-9]*):([0-9]*)/;
var match = regexp.exec('3 dagar, 12:00:46'); //insert your timespan as text here
var date = new Date(1970, 0, parseInt(match[1]) + 1, match[2], match[3], match[4]);
// var result = Math.floor(date.getTime()/1000); //seconds
var result = date.getTime() - date.getTimezoneOffset() * 60000; //milliseconds

我们还需要考虑时区。 date.getTimezoneOffset()以分钟为单位返回偏移量。

也许你想在rubular中对此进行测试并进行调整,因为如果输入不符合您提供的格式,可能会导致问题。