格式化日期为 12/31/1969


Formatting date gives 12/31/1969

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

这是我的代码:

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

怎么了?

$custom_date = "10-13-2013";
$formatted_date = DateTime::createFromFormat("m-d-Y", $custom_date)->format("Y-m-d");
mm-dd-yyyy不是

strtotime认可的格式。那是因为它无法可靠地处理像03-04-2013这样的日期,它是 3 月 4 日还是 4 月 3 日?

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

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