2011-04-27 101 views
1

我想解析一個日誌文件,使用人類可讀的日期沒有一年到時間戳。我已經看過函數strtotime(),但沒有取得任何成功。人類可讀的日期到時間戳

示例時間:Apr-26-10:49:36 這是date()函數的「M-j-H:i:s」的等價形式。

編輯:沒有一年,在我的情況這裏..完全罰款假設今年是今年。

我已經創建了一個腳本來打破過去,但它是漫長而多餘的。我希望能有更簡單的方法來做到這一點。任何幫助,或指向正確的方向將不勝感激:D

+0

的[失敗的strtotime上的日期格式]可能重複(http://stackoverflow.com/questions/5133703/strtotime-failing-on-mm-dd-yyyy-hhmm/5133746#5133746) – Gordon 2011-04-27 13:27:09

+0

可能重複[我如何使用PHP解析日期字符串](http://stackoverflow.com/questions/2767324/how-can-i-use-php-to-parse-a-date-string/2767419#2767419) – Gordon 2011-04-27 13:27:49

+1

可能重複的可能重複 – Michael 2011-04-27 15:37:26

回答

1

也許不是最漂亮的方式做到這一點,但它的工作原理

爲什麼的strtotime功能無法正常工作的問題是,因爲日和小時26-10之間的連字符。

您可以替換 - 然後使用strtotime。

echo date('Y-m-d H:i:s', strtotime(str_replace('-', ' ', 'Apr-26-10:49:36'))); 
+0

這完美無缺,謝謝! – 2011-04-27 14:23:41

+0

沒問題,很高興我能幫忙 – Khlbrg 2011-04-27 14:25:50

2

如果你知道日期的格式,你可以使用strptime解析它。這將返回一個數組,您可以使用該數組來確定mktime的參數。

+0

$ test = strptime(「Apr-26-10:49:36」,「MjH:i:s」);返回FALSE。你認爲這是一種糟糕的格式,還是因爲年份被忽略?感謝您的幫助 – 2011-04-27 13:40:11

+0

這是一種糟糕的格式。如['strftime'](http://www.php.net/manual/en/function.strftime.php)的文檔中所述,使用「%h-%d-%H:%M:%S」而不是「MjH:i:s」,如['date'](http://www.php.net/manual/en/function.date.php)的文檔中所述。這兩種格式很容易混淆,但'strptime'的文檔頁面說要使用'strftime'格式。 – Oswald 2011-04-27 14:07:08

+0

對不起,這實際上是我在你的帖子後嘗試的第一件事。之後我正在進行試驗,並粘貼修改後的代碼。感謝您的幫助 – 2011-04-27 14:23:11

相關問題