php日期格式转换出错

时间:2013-07-02 07:47:53

标签: php mysql date

我是以下代码来转换此日期 - > 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

我已经浪费了将近两天的时间。

如果有人可以提供帮助,请提前感谢!

6 个答案:

答案 0 :(得分:5)

使用DateTime对象,让php了解您将日期传递给它的格式。

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

答案 1 :(得分:2)

试试这个:)

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

答案 2 :(得分:1)

strtotime参数应采用格式18-07-2013

答案 3 :(得分:1)

您需要set the time zone日期,您的日期被解析为美国,美国日期格式为mm / dd / yyyy ......

date_default_timezone_set('Europe/Berlin');

也使用right reg. expression for the date function

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

答案 4 :(得分:0)

正斜杠(/)表示美国M / D / Y格式,短划线( - )表示欧洲D-M-Y,句点(。)表示ISO Y.M.D.

观察:

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  

答案 5 :(得分:0)

问题在于PHP中的日期字符串

  
      
  • 以斜线分隔的日期值假定为美国顺序:m / d / y
  •   
  • 以破折号分隔的日期值假定为欧洲顺序:d-m-y
  •   

您想知道的关于交谈日期的所有内容都在

之下

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