我是PHP的新手,我正在尝试制作一个打印出2013年每一天的PHP网页,如:
2013年1月1日
2013年1月2日
...........
...........
2013年12月31日
我一直在玩这个代码的不同变体,但我不能让日期增加不止一次。
$date = "2013-01-01";
for ($counter = 0; $counter <= 365; $counter++) {
$newdate = strtotime('+1 day', strtotime($date));
$newdate = date('Y-m-j', $newdate);
echo "$newdate<br>";
}
答案 0 :(得分:1)
很简单,当您使用strtotime( string )
时,就会出现问题。
其他重要的一点是,您需要将日期添加到$date
或在$counter
上添加strtotime( originalDate . '+'.$counter.' day')
1没有使用$ date的计数器。
<?php
$date = "2013-01-01";
for ($counter = 0; $counter <= 364; $counter++) {
echo "$date<br>";
$newdate = strtotime( $date . '+1 day');
$newdate = date('Y-m-j', $newdate);
$date = $newdate;
}
?>
2 with counter:
<?php
$date = "2013-01-01";
for ($counter = 0; $counter <= 364; $counter++) {
$newdate = strtotime( $date . '+'.$counter.' day');
$newdate = date('Y-m-j', $newdate);
echo "$newdate<br>";
}
?>
答案 1 :(得分:1)
您始终使用$date
变量来计算日期,但您不会更改它。你的循环将迭代366次(从0开始,最后包括365)。也请先回复$date
,否则您将从1月2日开始
$date = "2013-01-01";
for ($counter = 0; $counter < 365; $counter++) {
echo "$date<br>";
$date = date('Y-m-j', strtotime('+1 day', strtotime($date)));
}