2011-04-24 26 views
0

我有一個包含以下格式的時間戳的mysql表。PHP將malformated timestamp的格式更改爲秒數

下午10:00

2011年4月23日我將如何使用PHP來改變這一奇怪格式化時間戳的格式轉換成格式你當此聲明:echo date('U');又名自秒Unix時代。然後我想用新格式更新我的表格。

+2

是否存儲爲varchar? – afuzzyllama 2011-04-24 05:11:56

+0

它以文本形式存儲。是的,我知道這很愚蠢。 – 2011-04-24 05:14:59

回答

1

如何:

echo date('U', strtotime(str_replace('at', '', 'April 23, 2011 at 10:00 PM'))); 
1

你可以即使沒有PHP也行。 列添加int_timestamp到表,使用SQL查詢更新:

update table set int_timestamp=unix_timestamp(str_to_date(odd_timestamp, '%M %d,%Y at %h:%i %p')) 

確保新創建的時間戳是正確的(有些時區相關的問題是可能的),刪除舊的時間戳,並重新命名新一箇舊的。

+0

這看起來很棒,但請你解釋一下每個單詞的含義。例如:「table」應該是我的表的名字。 「int_timestamp」,「unix_timestamp」,「str_to_date」和「odd_timestamp」等其他內容代表什麼? – 2011-04-24 16:14:29

+0

int_timestamp是您的表中需要創建的列的名稱,以便將新時間戳記保存爲整數,odd_timestamp是需要更改的時間戳列,unix_timestamp()是將mysql datetime轉換爲類似php的整數時間戳記的mysql函數和str_to_date()是mysql函數將你奇怪的格式化日期轉換爲規範化的mysql日期時間格式。 – piotrm 2011-04-24 17:57:42