2011-03-01 162 views
1

即時通訊從運行的SQL查詢中得到結果,輸出以下日期($ mydate)(05/02/2011)....它的格式爲dd/mm/yyyy ...當我運行PHP - 更改日期格式

date('l jS \of F Y',strtotime($mydate)) 

即時得到一個完全不同的日期是什麼輸入,即時收集,這是因爲我不是用毫米/ dd/yyyy格式。

我該如何解決這個問題呢?

乾杯。

回答

3

您可以使用strptime()解析日期/時間格式。您也可以將日期字符串轉換爲YYYY-MM-DD,它始終由strtotime正確解析。例如:

$date = implode('-', array_reverse(explode('/', $date))); 

但我同意其他答案。首先看看你的數據庫設置。幾乎所有的數據庫都能夠直接輸出YYYY-MM-DD格式,大多數數據庫默認都會這樣。看看你爲什麼不這樣做。

1

我想知道爲什麼你的日期是從你的數據庫出來的dd/mm/yyyy,你使用的是哪種數據庫?如果是MySQL,則DATE字段應該輸出YYYY-MM-DD,它將與strtotime()正確行爲。

您可以explode('/', $mydate)手動分割dd,mm和yyyy,然後重新構建一個新的日期字符串,或者直接使用生成的數字和mktime()。

0

Herestrtotime()可以理解的格式列表。

哪個SQL輸出如此奇怪的日期格式?還是你自己設定日期?

0

如果它總是以這種格式,你可以使用

$newtime = preg_replace("/\d\d\/\d\d/\d\d\d\d/", "$3/$2/$1", $date); 

爲了將其轉化爲yyyy/mm/dd,然後只是把它插入到strtotime()

這肯定不是最完美的解決方案,實際上,我建議重做數據庫(創建一個新列,運行腳本以讀取每個條目,生成新日期,然後輸入它,刪除舊日期字段,然後重命名新日期,因此只需完成一旦)。