比如说有一个变量为一个日期$start_date="2011-11-02"; //2011年11月2号
$end_date=date('Y-m-d'); //今天的日期想用循环做一个表格:
2011-11-02 -- 2011-11-08
2011-11-09 -- 2011-11-15
.
.从2011-12-02那天算起,每一周都生成一行.一直到最后一行的结束日期不超过今天的日期,如果不够一周的话,那最后一行不显示.高手麻烦帮忙..
$end_date=date('Y-m-d'); //今天的日期想用循环做一个表格:
2011-11-02 -- 2011-11-08
2011-11-09 -- 2011-11-15
.
.从2011-12-02那天算起,每一周都生成一行.一直到最后一行的结束日期不超过今天的日期,如果不够一周的话,那最后一行不显示.高手麻烦帮忙..
$stringFormat = 'Y-m-d';
$startTime = '2011-11-02';
$endTime = date($stringFormat);
$days = (strtotime($endTime) - strtotime($startTime))/24/3600;
?>
<table width="700" border="0" cellspacing="0" cellpadding="0">
<?php
for($i=0;$i<$days/7;$i++)
{
?>
<tr align="center">
<?php
for($k=0;$k<7;$k++)
{
$time = date($stringFormat,strtotime($startTime.' + '.($k+$i*7).' day'));
if(strtotime($time) - strtotime($endTime) > 0)
break;
?>
<td><?=$time;?></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
起始时间为变量,类型是日期. 以每一周(7天)做成一个<td>.由于日期范围包括了当天那一日, 所以但用strtotime这一函数时,一周的算法应该是60*60*24*6.
$end_date=date('Y-m-d'); //今天的日期$d = 7;while(($start_date = date('Y-m-d', strtotime("$d day $start_date")))<= $end_date) {
echo date('Y-m-d', strtotime("-$d day $start_date")),
' --- ', date('Y-m-d', strtotime("-1 day $start_date")), PHP_EOL;
}2011-11-02 --- 2011-11-08
2011-11-09 --- 2011-11-15
2011-11-16 --- 2011-11-22
2011-11-23 --- 2011-11-29
2011-11-30 --- 2011-12-06
2011-12-07 --- 2011-12-13
你根据需要换乘你需要的
for ($start_date = strtotime("2011-11-02");$start_date < time()-86400*7;$start_date+=86400*7)
echo date('Y-m-d', $start_date), ' -- ', date('Y-m-d', $start_date+86400*6), "<br />";