2016-08-04 2 views
0

Я пытаюсь получить последний день с месяца, используя strtotime. Я не знаю, что случилось с приведенным ниже кодом. Может ли кто-нибудь снять этот вопрос?Как получить последний день месяца, используя php

$string = 'Jun'; 
$month_number = date("m",strtotime($string)); 
$calcstart_date = date('Y-'.$month_number.'-01').' 00:00:00'; 
echo $calcend_date = date('Y-'.$month_number.'-t').' 11:59:00'; 
+0

rtfm: http://php.net/date, если вы не указали временную метку даты() в качестве второго аргумента, она использует СЕГОДНЯ. поэтому вы генерируете значение 't' для августа, а не июня. –

+0

Возможный дубликат [Как найти последний день месяца с даты?] (Http://stackoverflow.com/questions/1686724/how-to-find-the-last-day-of-the-month-from -date) – andreas

+0

Это не дублирующий вопрос. просто проверьте мой вопрос @Andreas –

ответ

4

Ваши последние две date() вызовы не основаны каким-либо образом на метку времени вы вычисленной ранее; они будут использовать только количество дней в текущий месяц.

Вы хотите:

$time = strtotime($string); 
$calcstart_date = date('Y-m-\0\1', $time); 
$calcend_date = date('Y-m-t', $time); 

И если вам нужен номер месяца самостоятельно вы можете сделать

$month_number = date('m', $time); 

Наконец, если вы хотите только последний день число само по себе, что было бы :

$number_of_days = date('t', $time); 
+0

Мне нужно получить последний день месяца, а не месяц номер –

+0

«$ month_number» - это ваш исходный код. Вы хотите, чтобы *** просто *** номер месяца, а не последний день месяца, в дополнение к '$ month_number',' $ calcstart_date' и '$ calcend_date'? – VoteyDisciple

+0

это wrks wat i xpected спасибо –

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