格式化日期为12/31/1969

时间:2013-10-13 21:08:48

标签: php

我正在尝试将mm-dd-yyyy格式的日期格式化为yyyy-mm-dd格式,但是,当我尝试格式化时,它会显示为1969-12-31

这是我的代码:

$custom_date = "10-13-2013";

$formatted_date = date("Y-m-d", strtotime($custom_date));

怎么了?

2 个答案:

答案 0 :(得分:4)

mm-dd-yyyy不是strtotime识别的格式。那是因为它不能可靠地处理像03-04-2013这样的日期,它是三月的四分之一还是四月的三分之一?

您需要手动解析它,或使用DateTime类。

list($m,$d,$y) = explode("-",$_GET['date']);
$timestamp = mktime(0,0,0,$m,$d,$y);
$formatted_date = date("Y-m-d",$timestamp);

答案 1 :(得分:3)

$custom_date = "10-13-2013";

$formatted_date = DateTime::createFromFormat("m-d-Y", $custom_date)->format("Y-m-d");