Intereting Posts
Как включить данные GET & POST в журнал ошибок PHP Как указать формат по умолчанию для FOS \ RestBundle для json? Редактирование формы для отношения n: m с дополнительными атрибутами между двумя объектами join query в codeigniter Несколько таблиц с одним отношением (Laravel) Как получить URL-адрес настраиваемого элемента в Magento? Как я могу перечислить те же данные ID с циклом while в PHP? Разрешено разрешение Htaccess / указатель каталога Обнаружение кодировки файлов в PHP Есть ли функция PHP для удаления всех / всех пар ключ / значение, которые имеют определенное значение из массива? Ошибка с PHP mail (): множественные или неверные строки, найденные в дополнительном_header sfValidatorDoctrineUnique не выполняется заглавными буквами Ошибка PHP preg_replace () с недопустимой точкой кода Unicode авто сохранить / отправить форму на странице / закрыть / закрыть браузер для каждого цикла в javascript с данными json

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

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

strtotime("1 Nov, 2001"); 

который приводит к отметке времени 1320177660

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

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

Как отмечает @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

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

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