echo date('Y-m-d',strtotime('02-12-13'));
这是英文格式所以
预期输出:2013-12-02
我的输出:2002-12-13
有谁知道发生了什么?
echo date('Y-m-d',strtotime('02-12-13'));
这是英文格式所以
预期输出:2013-12-02
我的输出:2002-12-13
有谁知道发生了什么?
yy "-" MM "-" DD
当您指定只有两位数字的年份时,strtotime 的参数被解析为格式。请参阅http://www.php.net/manual/en/datetime.formats.date.php(在 ISO8601 符号中)。
如果您用四位数字指定年份,即 ,02-12-2013
您应该会得到预期的结果。
“xx-xx-xx”被解释为“yy-mm-dd”,如手册中所述:http ://www.php.net/manual/en/datetime.formats.date.php
您必须使用 date_parse_from_format () 并使用返回的数组来构建正确的格式。
http://de3.php.net/manual/en/function.date-parse-from-format.php
然而,也许最好用简单的字符串操作来格式化你原来的美国日期字符串。
list($date,$month,$year) = sscanf("01/01/2012", "%d/%d/%d");
echo "$month-$date-$year";