PHP strtotime (ГГГГ-мм последний день) ошибка месяца - PullRequest
4 голосов
/ 24 марта 2010

Я пытаюсь выполнить следующую команду в PHP 5.2.12:

print (date('Y-m-d', strtotime('2009-12 last day')));

Относительно руководства php.net :

date('m/d/y', strtotime('2009-03 last day')); # 03/31/09

должен отображаться последний день марта 2009 г. (2009-03-31)!

Шахта возвращает последний день предыдущего месяца? Зачем ? :

2009-11-30

Ответы [ 4 ]

9 голосов
/ 24 марта 2010

Код, который вы опубликовали, не работает так, как вы описали; кажется, что описание на страницах справочника PHP (которое, как упоминает SilentGhost, является просто комментарием пользователя) является не проверенным кодом.

Если вам нужен последний день данного месяца, попробуйте следующее:

date('Y-m-d', strtotime("2009-12 next month - 1 hour"));
2 голосов
/ 24 марта 2010

Если вы используете PHP 5.3, попробуйте использовать класс DateTime :

<?php
    $date = new DateTime("2009-03-01");
    $date->modify("last day of previous month");
    echo $date->format("m/d/y");
?>

Должно быть 5,3, так как $date->modify("last day of previous month"); не будет работать в 5.2. * Или более ранней версии.

0 голосов
/ 02 декабря 2015

date("Y-m-t", strtotime("201512"));

за декабрь 2015 года

0 голосов
/ 11 июля 2013

Я думаю, вы просто неправильно используете относительный формат, у меня это работает:

echo date('m/d/y', strtotime('last day of 2009-12'));

С Документы :

'last day' ' of'? - Устанавливает день последнего дня текущего месяца. Эту фразу лучше всего использовать вместе с названием месяца после нее. - "last day of next month"

...