簡體   English   中英

PHP日期格式轉換錯誤

[英]Error in php date format conversion

我下面的代碼將此日期-> 18/07/2013轉換為mysql支持的格式。

$date = date('Y-m-d', strtotime('18/07/2013'));

理想情況下,應該返回2013-07-18 ...
但是,問題在於它會自動將字符串選擇為:
YEAR as YEAR MONTH as DAY DAY as MONTH

現在,因為它將18標識為month ,所以它超出了范圍,並顯示了默認日期1970-01-01

我在這件事上浪費了將近兩天。

如果有人可以幫助,請提前感謝!

使用DateTime對象,使php了解您將日期傳遞給它的格式。

$date = DateTime::createFromFormat('d/m/Y', '18/07/2013');
echo $date ->format('Y-m-d');

嘗試這個 :)

echo date('Y-m-d', strtotime(str_replace('/', '-', '18/07/2013')));

strtotime參數的格式應為18-07-2013

您需要設置日期的時區您的日期被解析為美國日期,美國日期格式為mm / dd / yyyy ...

date_default_timezone_set('Europe/Berlin');

也使用正確的reg。 日期函數的表達式

$date = date( 'YY "/" MM "/" DD', strtotime('18/07/2013'));

正斜杠(/)表示美國M / D / Y格式,破折號(-)表示歐洲DMY,句號(。)表示ISO YMD

觀察:

echo date("jS F, Y", strtotime("11.12.10")); 
// outputs 10th December, 2011 

echo date("jS F, Y", strtotime("11/12/10")); 
// outputs 12th November, 2010 

echo date("jS F, Y", strtotime("11-12-10")); 
// outputs 11th December, 2010  

問題出在PHP中的日期字符串

  • 以斜杠分隔的日期值假定為美國順序:m / d / y
  • 破折號分隔的日期值假定為歐洲順序:dmy

您想了解的有關通話日期的所有信息都在下面

http://shakalya.com/resolve-php-date-format-problem/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM