Ответ 1
Возможно, вы захотите посмотреть strtotime
и date
.
<?php
$query_date = '2010-02-04';
// First day of the month.
echo date('Y-m-01', strtotime($query_date));
// Last day of the month.
echo date('Y-m-t', strtotime($query_date));
Я хочу переписать запрос 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('Y-m-01', strtotime($query_date));
// Last day of the month.
echo date('Y-m-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('Y-m-d');
//Last day of month
$date->modify('last day of this month');
$lastday= $date->format('Y-m-d');
Для поиска последней даты последнего месяца измените следующим образом:
$date->modify('last day of 1 month');
echo $date->format('Y-m-d');
и т.д.
Я знаю, что этот вопрос имеет хороший ответ с 't', но я думал, что добавлю другое решение.
$first = date("Y-m-d", strtotime("first day of this month"));
$last = date("Y-m-d", strtotime("last day of this month"));
cal_days_in_month() должно дать вам общее количество дней в месяце и, следовательно, последнее.
// First date of the current date
echo date('Y-m-d', mktime(0, 0, 0, date('m'), 1, date('Y')));
echo '<br />';
// Last date of the current date
echo date('Y-m-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("Y-m-t", strtotime($query_d));
Дата t возвращает число дней в текущем месяце.