如何获得特定月份的第一天和最后一天

我想重写一个mysql查询使用month()和year()函数来显示从某个月的所有职位作为'Ymd'参数格式去我的函数,但我不知道我怎么能得到给定月份的最后一天。

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

你可能想看看strtotimedate函数。

 <?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中使用PHP 5.3+

 $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'); 

为了find下个月的最后date,修改如下,

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

等等..

我知道这个问题与't'有一个很好的答案,但我认为我会添加另一个解决scheme。

 $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)); 

date t参数在当月返回天数。