2014-01-24 202 views
0

這應該是簡單的,但我有麻煩......所以轉來的StackOverflow ...PHP日期格式

我在英國和我得到從jQuery的DatePicker日期在DD/mm/yy格式。 我想存儲這個日期作爲串行(年月日),以便運行Date_To_Serial功能少了點:

return date("Ymd", strtotime($strDate_In)); 

其中$ strDate_In爲dd/MM/YY格式的日期字符串。

因此,在2013年12月1日過後,我預計20131201將被退回。

但是,當01/12/2013通過時,它返回20130112 - PHP顯然假定日期格式爲mm/dd/yyyy。

我該如何解決這個問題?

+0

那麼是什麼問題? – user2936213

+0

@JezB:你好朋友,日期選擇器提供設置日期的格式。所以如果你選擇Ymd那麼我認爲你不會再次遇到問題。試試吧 –

+0

@JezB:請參閱http://jqueryui.com/resources/demos/datepicker/date-formats.html –

回答

5

如果你知道格式,請嘗試使用靜態createFromFormat方法上DateTime類:

$date = DateTime::createFromFormat('d/m/Y', '01/12/2013'); 
return $date->format('Ymd'); 
+0

謝謝 - 我知道有人會很快知道! – JezB

0

使用DateTime對象的createFromFormat method。它允許您指定輸入的格式。

然後,使用format方法以所需格式導出日期。

1

如果分離是/然後strtotime假定美國的格式。有它承認英國格式隔板必須-.

echo date('Ymd', strtotime('01/12/2014')); // 20140112 
echo date('Ymd', strtotime('01-12-2014')); // 20141201 

因此,對於這個在你的工作,例如你會做:

return date("Ymd", strtotime(str_replace('/', '-', $strDate_In))); 
+0

「如果分隔符是/,那麼strtotime採用US格式,要識別英國格式,分隔符必須是 - 或。:」 - 我不知道......謝謝! – JezB