如何在PHP中获得每月的最后一天?
考虑到:
$a_date = "2009-11-23"
我想要2009-11-30;鉴于
$a_date = "2009-12-23"
我要2009-12-31。
如何在PHP中获得每月的最后一天?
考虑到:
$a_date = "2009-11-23"
我想要2009-11-30;鉴于
$a_date = "2009-12-23"
我要2009-12-31。
当前回答
碳API扩展PHP DateTime
Carbon::parse("2009-11-23")->lastOfMonth()->day;
or
Carbon::createFromDate(2009, 11, 23)->lastOfMonth()->day;
将返回
30
其他回答
我知道这有点晚了,但我认为有一种更优雅的方式来使用PHP 5.3+使用DateTime类:
$date = new DateTime('now');
$date->modify('last day of this month');
echo $date->format('Y-m-d');
如果你知道一个月的最后一天,
public function getLastDateOfMonth($month)
{
$date = date('Y').'-'.$month.'-01'; //make date of month
return date('t', strtotime($date));
}
$this->getLastDateOfMonth(01); //31
使用Zend_Date非常简单:
$date->setDay($date->get(Zend_Date::MONTH_DAYS));
还有一个内置的PHP函数cal_days_in_month()?
"此函数将返回指定日历的某月中的天数。" http://php.net/manual/en/function.cal-days-in-month。
echo cal_days_in_month(CAL_GREGORIAN, 11, 2009);
// = 30
function first_last_day($string, $first_last, $format) {
$result = strtotime($string);
$year = date('Y',$result);
$month = date('m',$result);
$result = strtotime("{$year}-{$month}-01");
if ($first_last == 'last'){$result = strtotime('-1 second', strtotime('+1 month', $result)); }
if ($format == 'unix'){return $result; }
if ($format == 'standard'){return date('Y-m-d', $result); }
}
http://zkinformer.com/?p=134