2013-11-28 105 views
-1

有一個表格欄,日期格式爲varchar0000-00-00 00:00:00如何將VARCHAR轉換爲日期格式?

現在我想將日期顯示爲一個字符串。目前有日期,甚至時間。我不知道如何解決這個問題。

我已經嘗試過使用strtotime()轉換:

$doa = $data['date'] 
... 
$time = strtotime($doa); 
$date_format = date('d.m.y', $time); 

什麼顯示錯誤的日期01.01.70

在此先感謝。

UPDATE:

...這裏是如何將其存儲在DB:

$timezone = 'Europe/Berlin'; 
date_default_timezone_set($timezone); 
$timestamp = time(); 
$db_date = date("d.m.Y - H:i:ss", $timestamp); 
+0

除了0.0.00之外,你還有嗎? (那麼,unix時代的開始是在1970年1月1日。)或者除了另一種格式的字符串嗎? – idmean

+0

[** Mysql STR_TO_DATE(col,format)**](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date) –

+0

你的預期產出是多少? – 2013-11-28 18:49:35

回答

0

當你保存你的約會到數據庫中,你將其保存爲「 varchar「,所以它是一個字符串。最有可能你的格式是這樣產生插入代碼插入到數據庫之前:

$date_format = date('Y-m-d H-i-s', $time); 

這將日期轉換爲你「0000-00-00 00:00:00」的格式。我不知道格式中的「月」和「日」,因此您可以在上述date()參數中切換「m-d」對。

然後你從數據庫中提取數據,事實上你有正確的代碼。您以「0000-00-00 00:00:00」格式提取數據,然後將其轉換爲Unix時間(strtotime),然後使用date()函數格式化數據。你只需要記住Unix時間從1970年1月1日開始。這就是爲什麼當你將0作爲日期字符串應用時,你從代碼中獲得「01.01.70」。

一個簡短的結論:如果你有任何實際的日期(不是全部爲零)存儲在你的數據庫中,那麼一切都應該很好。

老實說,PHP Date documentation具有日期格式化的所有明確細節,您可以輕鬆地抓住這個想法。

當然,我可能會誤解,你有更多的細節,我只是不能發表評論,這裏的新手。

相關問題