2014-09-12 3 views
0

Прямо сейчас, если вы используете strtotime('1 month') 31 января, вы получите 1-й марш, но мне интересно, есть ли простой способ, если я буду запускать тот же самый скрипт в тот же день вместо этого 1 марта я мог получить 28 февраля. Возможно ли это? Любые предложения будут ценны.Получение позавчера в конце месяца

Благодаря

EDIT:

К сожалению, я думаю, что я не объяснить это правильно, я хочу, чтобы иметь возможность всегда получить 30 дней в течение нескольких месяцев, где в этот день Dont существует кроме. Так, например, если это 31 января, я хочу, чтобы иметь возможность получить 28 февраля, но если бы это было 10 января, я хочу 10 февраля

+1

возможно дубликат [PHP последний день месяца] (http://stackoverflow.com/questions/1686724/php-last-day-of-the -месяц) – mcuadros

+0

Пожалуйста, см. мое редактирование немного сложнее, чем только конец месяца – Jacinto

+0

просто добавьте 30 к вашей дате? зачем вам strtotime для этого? или 'strtotime (+30 дней)' – bansi

ответ

2

Вы можете попробовать более подробный текст:

$date = new DateTime('last day of next month'); 
echo $date->format('Y-m-d'); 
// => 2014-10-31 

EDIT:

Чтобы ответить на ваш обновленный вопрос, вы можете начать с next month и сравнить его с last day of next month. Если next month больше last day of next month, используйте last day of next month вместо:

$date = new DateTime('next month'); 
if ($date > ($end = new DateTime('last day of next month'))) { 
    $date = $end; 
} 
+0

Спасибо, что мне нужно! – Jacinto

+0

'if ($ date> ($ end = new DateTime ('последний день следующего месяца')))' - * Интересно *. –

Смежные вопросы