如何使用PHP查找一个月内的第一个和最后一个日期?

时间:2010-04-21 05:18:36

标签: php date

如何使用PHP查找一个月内的第一个和最后一个日期?例如,今天是2010年4月21日;我想找到2010年4月1日和2010年4月30日。

10 个答案:

答案 0 :(得分:189)

答案 1 :(得分:23)

简单的

  • Y - 一年的完整数字表示,4位数
  • m - 一个月的数字表示,带前导零
  • t - 给定月份的天数

参考 - http://www.php.net/manual/en/function.date.php

<?php
    echo 'First Date    = ' . date('Y-m-01') . '<br />';
    echo 'Last Date     = ' . date('Y-m-t')  . '<br />';
?>

答案 2 :(得分:16)

您可以使用日期功能查找一个月内的天数。

// Get the timestamp for the date/month in question.
$ts = strtotime('April 2010');

echo date('t', $ts); 
// Result: 30, therefore, April 30, 2010 is the last day of that month.

希望有所帮助。

编辑:在阅读了Luis的回答之后,我想到你可能想要它的格式正确(YY-mm-dd)。这可能是显而易见的,但不要提及:

// After the above code
echo date('Y-m-t', $ts); 

答案 3 :(得分:11)

这将为您提供该月的最后一天:

function lastday($month = '', $year = '') {
   if (empty($month)) {
      $month = date('m');
   }
   if (empty($year)) {
      $year = date('Y');
   }
   $result = strtotime("{$year}-{$month}-01");
   $result = strtotime('-1 second', strtotime('+1 month', $result));
   return date('Y-m-d', $result);
}

第一天:

function firstDay($month = '', $year = '')
{
    if (empty($month)) {
      $month = date('m');
   }
   if (empty($year)) {
      $year = date('Y');
   }
   $result = strtotime("{$year}-{$month}-01");
   return date('Y-m-d', $result);
} 

答案 4 :(得分:3)

对于特定,请使用date()作为自然语言,如下所示

$first_date = date('d-m-Y',strtotime('first day of april 2010'));
$last_date = date('d-m-Y',strtotime('last day of april 2010'));
// Isn't it simple way?

但是当月

$first_date = date('d-m-Y',strtotime('first day of this month'));
$last_date = date('d-m-Y',strtotime('last day of this month'));

答案 5 :(得分:3)

如果您想从指定的日期变量中找到第一天和最后一天,那么您可以执行以下操作:

$date    =    '2012-02-12';//your given date

$first_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", first day of this month");
echo $first_date = date("Y-m-d",$first_date_find);

$last_date_find = strtotime(date("Y-m-d", strtotime($date)) . ", last day of this month");
echo $last_date = date("Y-m-d",$last_date_find);

对于当前日期,只需使用此

即可
$first_date = date('Y-m-d',strtotime('first day of this month'));
$last_date = date('Y-m-d',strtotime('last day of this month'));

Live Demo

答案 6 :(得分:2)

获取Last Month;

的第一个和最后一个日期
$dateBegin = strtotime("first day of last month");  
$dateEnd = strtotime("last day of last month");

echo date("D-F-Y", $dateBegin);  
echo "<br>";        
echo date("D-F-Y", $dateEnd);

答案 7 :(得分:2)

格式简单

   $curMonth = date('F');
   $curYear  = date('Y');
   $timestamp    = strtotime($curMonth.' '.$curYear);
   $first_second = date('Y-m-01 00:00:00', $timestamp);
   $last_second  = date('Y-m-t 12:59:59', $timestamp); 

下个月将 $ curMonth 更改为 $ curMonth =日期('F',strtotime(“+ 1个月”));

答案 8 :(得分:0)

$month=01;
$year=2015;
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
echo $num;

显示日期的最后一天

答案 9 :(得分:0)

您可以使用 DateTimeImmutable::modify() :


$date = DateTimeImmutable::createFromFormat('Y-m-d', '2021-02-13');

var_dump($date->modify('first day of this month')->format('Y-m-d')); // string(10) "2021-02-01"
var_dump($date->modify('last day of this month')->format('Y-m-d')); // string(10) "2021-02-28"