-3
echo date('Y-m-d',strtotime('02-12-13'));

这是英文格式所以

预期输出:2013-12-02

我的输出:2002-12-13

有谁知道发生了什么?

4

3 回答 3

1

yy "-" MM "-" DD当您指定只有两位数字的年份时,strtotime 的参数被解析为格式。请参阅http://www.php.net/manual/en/datetime.formats.date.php(在 ISO8601 符号中)。

如果您用四位数字指定年份,即 ,02-12-2013您应该会得到预期的结果。

于 2013-09-19T17:29:37.227 回答
1

“xx-xx-xx”被解释为“yy-mm-dd”,如手册中所述:http ://www.php.net/manual/en/datetime.formats.date.php

于 2013-09-19T17:31:01.227 回答
0

您必须使用 date_parse_from_format () 并使用返回的数组来构建正确的格式。

http://de3.php.net/manual/en/function.date-parse-from-format.php

然而,也许最好用简单的字符串操作来格式化你原来的美国日期字符串。

使用不同的分隔符在 PHP 中将英国日期转换为美国日期

list($date,$month,$year) = sscanf("01/01/2012", "%d/%d/%d");
echo "$month-$date-$year";
于 2013-09-19T17:38:28.477 回答