2010-08-09 116 views
1

嗨,我的應用程序分析文本文件的日期值以格式存儲在:DDMMMYYYY例如:12MAR2009。如何將格式DDMMMYYYY的日期轉換爲數據庫可存儲日期

我注意到將這個值插入數據庫日期時間值根本不起作用。如何將其轉換爲可輸入數據庫的日期時間值。我的應用程序是在PHP中。

+0

大多數DBMS都有函數來解析字符串中的日期。你有沒有考慮過把這個任務交給數據庫? – 2010-08-09 07:56:23

回答

2
$timestamp = strtotime("12MAR2009"); 

... 

INSERT INTO my_table (..., timestamp) VALUES (..., FROM_UNIXTIME($timestamp)) 

PHP函數strtotime()將採取幾乎包含日期/時間值的字符串,並將其轉換爲Unix時間戳。

MySQL函數FROM_UNIXTIME()將採用unix時間戳並將其轉換爲MySQL的日期時間格式。

3

像這樣的東西應該將日期轉換爲MySQL's DATETIME format

$date = new DateTime('12MAR2009', new DateTimeZone('America/New_York')); 
$mysql_date = $date->format('Y-m-d H:i:s'); 

您可以使用strtotime(),但時區與它的處理是一種痛苦。

+0

提及時區+1。日期/日期時間應始終與時區信息一起保存。其他人,無論是用戶移動還是移動服務器都是潛在的錯誤來源。 – chryss 2010-08-09 07:39:07

+0

目前我的應用程序圍繞着基本的UTC時間 - 如果我需要根據每個用戶的具體時間記錄特定的時間,那麼您的觀點是有效的。我會在另一個項目中記住這一點 - 再次感謝。 – Ali 2010-08-09 11:49:19

相關問題