2012-10-20 82 views
-1

好的,這裏是我遇到的問題。將日期時間格式插入到數據庫中

我有日期時間作爲數據庫中的一行,我該如何配置php,以便它從php腳本插入正確的日期時間到數據庫中,我似乎只能用vanchar(255)。

+0

//將信息寫入數據庫 的mysql_query(「INSERT INTO'Cars' VALUES( '',「待定','$ price','{$ fetchAccount ['email']}','「.time()。」','$ content','$ description','$ area','$ town',' $ UK','$ target','0')「); –

+0

@ user1722740爲什麼不作爲回答發佈? –

回答

1

MySQL的日期/時間格式是yyyy-mm-dd mm:hh:ss。如果您以任何其他格式插入時間和/或日期值,它們可能會被刪除並設置爲默認值。如果需要,可以使用像str_to_date()這樣的函數將不符合的字符串轉換爲本機MySQL值。

+0

嗯那是什麼發生只是將日期設置爲0000-00-00 00:00:00 –

+0

所以是的,你插入一些不可識別的日期和MySQL使用默認的全零版本來保存它。你必須使用mysql的本地格式,或者轉換爲它。 –

0

嘗試......

<?php 
function format_mysql_datetime($raw) { 
     $format = '%Y-%m-%d %H:%M:%S'; 
     $stringtime = strtotime($raw); 
     return strftime($format, $stringtime); 
} 

$raw = date('c'); 

$sql='insert into myTable (theDateTimeField) 
values ('.format_mysql_datetime($raw).')'; 
mysql_query($sql); 

?> 

如果使用日期( 'C')而不是時間這個工程()。確保你設置你的默認時區,否則它可能顯示錯誤的時間。請參閱date_default_timezone_set.

請注意,您不應該使用mysql_ *。相反,使用PDO。你的代碼很容易受到sql注入的影響,你必須防止在任何時候在查詢中使用外部輸入。我沒有使用PDO寫我的答案,因爲我想強調如何處理日期,而不是引入另一個新概念來混淆你。

還檢查了這些文檔:

+0

工作原理謝謝你只需要弄清楚你是如何做時區的,因爲日期是正確的,但時間是錯誤的,我對所有這些東西都是新手,所以在某些事情上有些不太樂觀。 –

+0

只是希望它以一種格式顯示gmt –

+0

我不知道。看看這裏支持的時區:http://www.php.net/manual/en/timezones.php。格林尼治標準時間是在其他,但它是折舊。我不知道你會選擇哪個城市 - 但我知道冰島的城市全年使用格林威治標準時間。 – MaxPowers

相關問題