function test($time1,$time2){
.............
}给两个时间:起始日期和终止日期,比如2008-12-25 2009-01-10,求一函数,把它的月数列出来,要可以跨年。
例如:test( strtotime('2008-10-25'), strtotime('2009-03-10'));
得出下面结果:
2008-10-25至2008-10-31
2008-11-01至2008-11-30
2008-12-01至2008-12-31
2009-01-01至2009-01-31
2009-02-01至2009-02-28
2009-03-01至2009-03-10
.............
}给两个时间:起始日期和终止日期,比如2008-12-25 2009-01-10,求一函数,把它的月数列出来,要可以跨年。
例如:test( strtotime('2008-10-25'), strtotime('2009-03-10'));
得出下面结果:
2008-10-25至2008-10-31
2008-11-01至2008-11-30
2008-12-01至2008-12-31
2009-01-01至2009-01-31
2009-02-01至2009-02-28
2009-03-01至2009-03-10
function test($time1, $time2) {
$stamp1 = strtotime($time1);
$stamp2 = strtotime($time2);
$resStamp = $stamp2 - $stamp1;
$resArr = explode("-", date("Y-m-d", $resStamp));
$res['year'] = $resArr[0] - 1970;
$res['month'] = $resArr[1];
$res['day'] = $resArr[2];
return $res;
}
echo "<pre>";
var_dump(test("2008-10-25", "2008-10-31"));
?>array(3) {
["year"]=>
int(0)
["month"]=>
string(2) "01"
["day"]=>
string(2) "07"
}
这样就可以了<?php
function test($time1, $time2) {
$stamp1 = strtotime($time1);
$stamp2 = strtotime($time2);
$resStamp = $stamp2 - $stamp1;
$resArr = explode("-", date("Y-m-d", $resStamp));
$res['year'] = $resArr[0] - 1970;
$res['month'] = $resArr[1] - 1;
$res['day'] = $resArr[2] - 1;
return $res;
}
echo "<pre>";
var_dump(test("2008-10-25", "2008-10-29"));
?>
function test($time1,$time2){
$t = $time1;
if(substr($t,0,7) == substr($time2,0,7))
{
$c[] = $time1." - ".$time2;
return $c;
}
while($t < $time2)
{
$st = strtotime($t);
if($t == $time1)
{
$c[] = $t." - ".date("Y-m-".date("t",$st),$st);
}
else
{
$firstDay = date("Y-m-01",$st);
$c[] = $firstDay." - ".substr($firstDay,0,7)."-".date("t",$st);
}
$t = date("Y-m-d",strtotime("{$t} +1 month"));
}
if(substr($t,0,7) != substr($time2,0,7))
{
$cc = count($c)-1;
$c[$cc] = date("Y-m-01",strtotime($t." -1 month"))." - ".$time2;
}
else
{
$c[] = date("Y-m-01",strtotime($t))." - ".$time2;
}
return $c;
}
echo "<pre/>";
print_r(test('2008-10-25','2009-03-10'));