2009-08-22 57 views

回答

3

,我認爲這可以幫助你http://www.mattkruse.com/javascript/date/

即使世界一個getDateFromFormat()功能,你可以調整有點解決您的問題。

+0

@lucas @那麼,有什麼方法可以解析它呢? – avnic 2009-08-22 22:21:24

+0

解析函數不接受這種格式,嘗試它,在IE和FF中,你將得到** Mon Nov 08 2010 12:05:00 **,在Chrome中只是**無效日期** – CMS 2009-08-22 22:29:11

+0

@CMS:這是第一個猜測。我找到了一種不同的方法。謝謝。 – Kredns 2009-08-22 22:31:41

3

可以使用正則表達式獲取日期的各個部分,並調用Date構造,調整數月,自本月初以來的數字是零基礎,例如:

function customDateParse (input) { 
    var m = input.match(/(\d+)/g); 
    return new Date(m[2], m[1] - 1, m[0], m[3], m[4], m[5]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

如果你不這樣做像正則表達式:

function customDateParse (input) { 
    input = input.split(' '); 
    var date = input[0].split('/'), 
     time = input[1].split(':'); 

    return new Date(date[2], date[1] - 1, date[0], time[0], time[1], time[2]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

但是,如果你發現,複雜的,你願意做更多的日期操縱我強烈建議你DateJS庫,體積小,開源和語法糖...

+0

這似乎有點複雜。由於JavaScript中有'getDateFromFormat()'方法,因此它看起來像過度使用正則表達式。 – Kredns 2009-08-22 22:24:14

+0

沒有原生* getDateFromFormat *函數... – CMS 2009-08-22 22:32:58

+0

請參閱我在答案中提供的鏈接。 – Kredns 2009-08-22 22:37:29

1

使用momentjs轉換從字符串到Date對象。

var date = '23/08/2009 12:05:00'; 
var datetime = moment(date, 'DD/MM/YYYY HH:mm:ss'); 
datetime = moment.toDate();