2015-06-17 79 views
0

我正在嘗試使用moment.js將Apache日誌時間戳(14/Jun/2015:11:05:54 -0700)格式化爲適當的MySQL DATETIME格式。使用JavaScript解析Apache日誌時間戳

獲取MySQL DATETIME格式是一件輕而易舉的事情。但時刻似乎只能自動檢測ISO 8601格式。通過我的Node.js控制檯輸出時在Apache日誌的時間戳到時刻:

> moment('08/Jun/2015:15:03:29').format("YYYY-MM-DD HH:mm:ss") 
'Invalid date' 

我不能想出一個辦法來解析Apache日誌時間戳沒有在JavaScript中做一噸的字符串分裂。有沒有一種乾淨的方式來加載Apache日誌時間戳?或者也許進入Date對象?

注意:更改Apache日誌的時間戳格式不適用於我的情況,因爲我正在處理舊的日誌文件,而不是新的日誌文件。

回答

1

你需要告訴時刻字符串是什麼格式,以便它可以解析它。

喜歡的東西:

moment('08/Jun/2015:15:03:29', 'DD/MMM/YYYY:HH:mm:ss Z').format("YYYY-MM-DD HH:mm:ss") 
+0

啊,我明白了。你的答案是無效的,除了需要在那裏添加偏移量。所以格式最後必須是「DD/MMM/YYYY:HH:mm:ss Z」。謝謝! – richardgirges