2015-11-03 60 views
1

MySQL上的表有幾個日期類型的列,當瀏覽phpMyAdmin和mysql web前臺的表時,我可以看到數據是純日期。MySQL + PHP返回一個乾淨的日期字段的時間

但是,當我在PHP上運行一個簡單的腳本時,這些列中的其中一列將返回時間戳YYYY-MM-DD 00:00:00。

我將這兩個文件和數據庫遷移到不同的系統,我不再能夠重現該錯誤。

這是由於PHP/MySQL的一些錯誤配置,或者數據插入的方式可能最終損壞並且查詢它返回了意外的時間戳?

例子: 的查詢,如:

"SELECT `cf_719`,`cf_711` FROM `vtiger_ticketcf` WHERE `ticketid`=682" 

其中兩個cf_719 ABD cf_711是日期類型將返回

array(2) { ["cf_719"]=> string(19) "2015-04-08 00:00:00" ["cf_711"]=> string(10) "2015-04-08" } 

編輯:看來我找到了解決辦法。問題是他們的phpMyAdmin應用程序中出現了一個看似錯誤,它將該字段顯示爲'date',但是,mysql命令行工具查詢DESC將其顯示爲日期時間類型。我甚至不知道我應該從中學到什麼 - 除了命令行之外別無選擇。

+0

請問您能否顯示您的代碼或數據庫表? –

+0

不能提供多少,因爲它有一些敏感數據,但會盡量提供我可以壓縮的問題 – apriede

回答

0

DATE字段的值是DATETIME字段的特殊子集,其中包含時間應該是午夜(00:00)。

我不知道爲什麼一個php實例只顯示日期,另一個顯示日期和時間。但我知道那是不可預測的行爲。

通常需要在顯示它之前對這種數據進行格式化,以便顯示您想要的分辨率。即使你想要時間,你也許只需要幾小時和幾分鐘。

這個問題和答案告訴你如何在php中做到這一點。 Getting time and date from timestamp with php。像這樣的東西會奏效。

$timestamp = strtotime($row['DATETIMEAPP']); 
$date = date('d-m-Y', $timestamp); 
相關問題