2012-09-13 20 views
0

使用JavaScript,我怎么转换日期字符串像这样:的Javascript Datestring转换器,具有时区

Sep 13, 1:13PM GMT+01:00 
Sep 12, 4:00PM EDT 

要么因为时代Unix时间戳或JavaScript毫秒?

我觉得格式是:

MMM DD, h:mmtt ?K 
+1

因为这不是一个有效的日期字符串,你将不得不使用正则表达式解析它,并自己建立日期 –

+0

正则表达式应该能够改变字符串做这样的事情新的日期('13 Sep,2012 01:13' ).getTime()但不包含时区信息? – chillbo

+0

@JamesKleeh是对的,这里是一个让你开始的例子http://stackoverflow.com/questions/2407052/date-to-timestamp-in-javascript – Adi

回答

0

我走了这么远,接近答案。

  • 它做一个正则表达式在字符串,并以一组
  • 我认为这是本年度
  • 它失败时的24小时表示校正捕捉每一个元素采取以考虑时区
  • 使用parse方法
function getTimestamp(str){ 
var re = /(\w{3}) (\d{2}), (\d):(\d{2})(\w{2}) (.*)/; 
    var match = re.exec(str); 
    if (match !== null) { 
     var HH = match[5]==='PM' ? +match[3]+12 : match[3]; 
     return Date.parse(match[1]+' '+match[2]+', '+new Date().getFullYear()+' '+ HH +':'+match[4]); 
    } 
} 

getTimestamp('Sep 12, 4:00PM EDT'); //=> 1347462000000