我正在尝试将mm-dd-yyyy
格式的日期格式化为yyyy-mm-dd
格式,但是,当我尝试格式化时,它会显示为1969-12-31
。
这是我的代码:
$custom_date = "10-13-2013";
$formatted_date = date("Y-m-d", strtotime($custom_date));
怎么了?
答案 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");