как получить первый и последний дни данного месяца

Я хочу переписать запрос mysql, который использует функции month () и year (), чтобы отображать все сообщения за определенный месяц, которые поступают в мою функцию как формат параметра «Ymd», но я не знаю, как я могу получить последний день данного месяца.

$query_date = '2010-02-04'; list($y, $m, $d) = explode('-', $query_date); $first_day = $y . '-' . $m . '-01'; 

Возможно, вам захочется взглянуть на функции strtotime и date .

 <?php $query_date = '2010-02-04'; // First day of the month. echo date('Ym-01', strtotime($query_date)); // Last day of the month. echo date('Ym-t', strtotime($query_date)); 

Попробуйте это, если вы используете PHP 5.3+, в php

 $query_date = '2010-02-04'; $date = new DateTime($query_date); //First day of month $date->modify('first day of this month'); $firstday= $date->format('Ym-d'); //Last day of month $date->modify('last day of this month'); $lastday= $date->format('Ym-d'); 

Чтобы найти следующий последний месяц, измените следующим образом:

  $date->modify('last day of 1 month'); echo $date->format('Ym-d'); 

и так далее..

Я знаю, что этот вопрос имеет хороший ответ с 't', но я думал, что добавлю другое решение.

 $first = date("Ymd", strtotime("first day of this month")); $last = date("Ymd", strtotime("last day of this month")); 

cal_days_in_month () должен дать вам общее количество дней в месяце, а значит, и последнее.

 // First date of the current date echo date('Ym-d', mktime(0, 0, 0, date('m'), 1, date('Y'))); echo '<br />'; // Last date of the current date echo date('Ym-d', mktime(0, 0, 0, date('m')+1, 0, date('Y'))); 
 $month = 10; // october $firstday = date('01-' . $month . '-Y'); $lastday = date(date('t', strtotime($firstday)) .'-' . $month . '-Y'); 

В основном:

 $lastDate = date("Ymt", strtotime($query_d)); 

Дата дня t возвращает число дней в текущем месяце.