2013-02-05 20 views

回答

0

如果你總是有你的日期字符串相同的格式,你可以簡單地使用.length檢查是否有添加的東西:

var your_string = "2012-08-20T15:00:00"; 
if(your_string.length > 19) { 
    // offset added 
    // offset = your_string.substring(19); 
} else { 
    // no offset added 
} 

無論如何,我會建議使用(new Date).getTime()返回毫秒自01.01。 1970年,0:00:00 UTC。這是更容易計算...

1

我知道我可以用正則表達式來做,但有沒有其他更簡單的方法嗎?

我不這麼認爲,正則表達式是最簡單的模式匹配器可用。

是否有任何人有它的正則表達式?

我想這應該這樣做:

/[+-]\d\d:\d\d$/.test(datestring) 

如果要分析它,使用

var match = /([+-]?\d\d):(\d\d)$/.exec(datestring); 
if (match) 
    return parseInt(match[1], 10)*60 + parseInt(match[2], 10)*(match[1].charAt(0)=="-"?-1:1); 
return 0; 
+0

大感謝,但它僅與負這樣的2012-08偏移作品! -20:15:00:00-07:00,並且沒有像2012-08-20T15:00:00 + 07:00這樣的正偏移量。我們能解決嗎? – Ishita

+0

糟糕,我完全忘記了格式化的正偏移量。我認爲這是'Z',但這實際上意味着零偏移。 – Bergi

相關問題