出于某种计算目的,我需要得到给定月份的结束日期,
我怎么能在PHP中这样做,我尝试使用date()函数,但它没有用。
我用过这个:
date($year.'-'.$month.'-t');
但是这给出了当月的结束日期。 我觉得我错了,我找不到我在哪里错了。
如果我将2012年作为2012年和月份为03,那么它必须显示为2012-03-31。
答案 0 :(得分:4)
此代码将为您提供特定月份的最后一天。
$datetocheck = "2012-03-01";
$lastday = date('t',strtotime($datetocheck));
答案 1 :(得分:2)
您希望将date()
来电替换为:
date('Y-m-t', strtotime($year.'-'.$month.'-01'));
date()
的第一个参数是您要返回的格式,第二个参数必须是unix时间戳(或者不传递以使用当前时间戳)。在您的情况下,您可以使用函数strtotime()
生成时间戳,并为其传递一个日期字符串,其中包含当天的年份,月份和01。它将返回同一年和月,但格式中的-t
将替换为该月的最后一天。
如果您只想返回没有年月的月份的最后一天:
date('t', strtotime($year.'-'.$month.'-01'));
只需使用't'
作为格式字符串。
答案 2 :(得分:1)
当月:
echo date('Y-m-t');
任何月份:
echo date('Y-m-t', strtotime("$year-$month-1"));
答案 3 :(得分:0)
尝试以下代码。
$m = '03';//
$y = '2012'; //
$first_date = date('Y-m-d',mktime(0, 0, 0, $m , 1, $y));
$last_day = date('t',strtotime($first_date));
$last_date = date('Y-m-d',mktime(0, 0, 0, $m ,$last_day, $y));
答案 4 :(得分:0)
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);
}
答案 5 :(得分:0)
function firstOfMonth() {
return date("Y-m-d", strtotime(date('m').'/01/'.date('Y').' 00:00:00')). 'T00:00:00';}
function lastOfMonth() {
return date("Y-m-d", strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')))). 'T23:59:59';}
$date1 = firstOfMonth();
$date2 = lastOfMonth();
试试这个,这会给你一个当月的开始和结束日期。
答案 6 :(得分:0)
date("Y-m-d",strtotime("-1 day" ,strtotime("+1 month",strtotime(date("m")."-01-".date("Y")))));
答案 7 :(得分:0)
function getEndDate($year, $month)
{
$day = array(1=>31,2=>28,3=>31,4=>30,5=>31,6=>30,7=>31,8=>31,9=>30,10=>31,11=>30,12=>31);
if($year%100 == 0)
{
if($year%400 == 0)
$day[$month] = 29;
}
else if($year%4 == 0)
$day[$month] = 29;
return "{$year}-{$month}-{$day[$month]}";
}
答案 8 :(得分:0)
如果你使用PHP> = 5.2我强烈建议你使用新的DateTime对象。例如,如下所示:
$a_date = "2012-03-23";
$date = new DateTime($a_date);
$date->modify('last day of this month');
echo $date->format('Y-m-d');