如何找到该日期的最后一天?

[亡魂溺海] 提交于 2020-02-29 14:20:21

如何在PHP中获取本月的最后一天?

鉴于:

$a_date = "2009-11-23"

我想要2009-11-30; 给定

$a_date = "2009-12-23"

我想2009-12-31。


#1楼

你的解决方案在这里..

$lastday = date('t',strtotime('today'));

#2楼

这应该工作:

$week_start = strtotime('last Sunday', time());
$week_end = strtotime('next Sunday', time());

$month_start = strtotime('first day of this month', time());
$month_end = strtotime('last day of this month', time());

$year_start = strtotime('first day of January', time());
$year_end = strtotime('last day of December', time());

echo date('D, M jS Y', $week_start).'<br/>';
echo date('D, M jS Y', $week_end).'<br/>';

echo date('D, M jS Y', $month_start).'<br/>';
echo date('D, M jS Y', $month_end).'<br/>';

echo date('D, M jS Y', $year_start).'<br/>';
echo date('D, M jS Y', $year_end).'<br/>';

#3楼

t返回给定日期的月份天数(请参阅date文档 ):

$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));

#4楼

您可以为下个月的第一天创建日期,然后使用strtotime("-1 day", $firstOfNextMonth)


#5楼

您可以在日期函数中使用“ t ”来获取特定月份中的天数。

代码将是这样的:

function lastDateOfMonth($Month, $Year=-1) {
    if ($Year < 0) $Year = 0+date("Y");
    $aMonth         = mktime(0, 0, 0, $Month, 1, $Year);
    $NumOfDay       = 0+date("t", $aMonth);
    $LastDayOfMonth = mktime(0, 0, 0, $Month, $NumOfDay, $Year);
    return $LastDayOfMonth;
}

for($Month = 1; $Month <= 12; $Month++)
    echo date("Y-n-j", lastDateOfMonth($Month))."\n";

代码是自我解释的。 所以希望它有所帮助。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!