php strtotime не работает - PullRequest
       36

php strtotime не работает

4 голосов
/ 15 апреля 2011

, поэтому я преобразовал эту строку в метку времени, используя strtotime:

strtotime("1 Nov, 2001");

, что приводит к отметке времени 1320177660

но затем, когда я снова попытался преобразовать 1320177660 в обычный формат даты с помощью онлайн-конвертера меток времени, год закончился 2011, а не 2001 ...

что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 15 апреля 2011

Как говорится в комментарии @Evan Mulawski, «2001» интерпретируется как время, а не как год. Выньте запятую, чтобы PHP интерпретировал «2001» как год:

<?php
$ts = strtotime("1 Nov 2001");
echo $ts . "\n";
$st = strftime("%B %d, %Y, %H:%M:%S", $ts);
echo $st . "\n";
?>

Выход:

1004590800
01 ноября 2001 года, 00:00:00

4 голосов
/ 15 апреля 2011

Вы не делаете ничего плохого - просто strtotime не является непогрешимым.

Таким образом, если вы знаете, что строка всегда будет в определенном формате,иногда рекомендуется проанализировать дату самостоятельно, или, если вы используете PHP 5.3.x, вы можете использовать DateTime :: createFromFormat для анализа строки за вас.

...