阅读并重新阅读文档,真正无法解释为什么$ date1通过错误
有人可以帮忙吗?非常感谢$date1 = "04-16-2013";
$date2 = "2013-04-16";
printf("date1 = %s\n", $date1);
printf("date2 = %s\n", $date2);
$newdate1 = date('m-d-Y',$date1);
$newdate2 = date('Y-m-d',$date2);
printf("newdate1 = %s\n", $newdate1);
printf("newdate2 = %s\n", $newdate2);
$previous_date = date('m-d-Y', strtotime($date1 .' -1 day'));
$previous_date2 = date('m-d-Y', strtotime($date2 .' -1 day'));
printf("previous_date = %s\n", $previous_date);
printf("previous_date2 = %s\n", $previous_date2);
输出
date1 = 04-16-2013
date2 = 2013-04-16
newdate1 = 12-31-1969
newdate2 = 1969-12-31
previous_date = 12-31-1969
previous_date2 = 04-15-2013
答案 0 :(得分:1)
通过查看,可以消除m / d / y或d-m-y格式的日期 各个组件之间的分隔符:如果分隔符是a 斜线(/),然后是美国m / d / y;而如果 separator是短划线( - )或点(。),然后是欧洲d-m-y格式 假定。
为避免潜在的歧义,最好使用ISO 8601(YYYY-MM-DD) 可能的日期或DateTime::createFromFormat()。
在你的情况下,因为你使用分隔符破折号( - )php考虑日期格式是在d-m-y。
或解决方法:
$date1 = "04-16-2013";
$date2 = "2013-04-16";
printf("date1 = %s\n", $date1);
printf("date2 = %s\n", $date2);
$newdate1 = date('m-d-Y',strtotime(str_replace("-","/",$date1)));
$newdate2 = date('Y-m-d', strtotime($date2));
printf("newdate1 = %s\n", $newdate1);
printf("newdate2 = %s\n", $newdate2);
$previous_date = date('m-d-Y', strtotime(str_replace("-","/",$date1) .' -1 day'));
$previous_date2 = date('m-d-Y', strtotime($date2 .' -1 day'));
printf("previous_date = %s\n", $previous_date);
printf("previous_date2 = %s\n", $previous_date2);
答案 1 :(得分:0)
在你的情况下试试这个:
$date1 = "04-16-2013";
$date = date_create_from_format('m-j-Y', $date1);
echo date_format($date, 'd-m-Y');
首先输入月 - 日 - 年....然后输出日 - 月 - 年