我正在生成当天和下一个即将到来的六天:
<?php
for($i=0; $i<=6; $i++){
echo strtoupper(date("j",mktime(0, 0, 0, 0,date("d")+$i,0))."\n");
echo "|";
}
?>
产生这个(2月8日,当我写这篇文章时):
8 |9 |10 |11 |12 |13 |14 |
如何执行以下操作:
我想要的输出是:
8|9|10|11|12|13|14
答案 0 :(得分:2)
此任务适用于do..while
循环:
$i = 0;
do {
echo strtoupper(date("j",mktime(0, 0, 0, 0,date("d")+$i,0)));
} while ($i++ < 6 && print "|");
由于您的输出中有\n
,因此存在空格。任何空格都将被浏览器制作成一个空格。
答案 1 :(得分:1)
只是为了获得DateTime
类(PHP 5.3 +)
<?php
$start = new DateTime();
$interval = new DateInterval('P1D');
$period = new DatePeriod($start,$interval,6);
$days = array();
foreach($period as $date) {
$days[] = $date->format('d');
}
$daysString = implode('|',$days);
echo $daysString;
是的...... DatePeriod
需要实现某种有用的交互器......
答案 2 :(得分:0)
您可以使用变量并为其添加文本,并在for循环后输出字符串。
$output = '';
for($i=0; $i<=6; $i++){
$output .= (date("j",mktime(0, 0, 0, 0,date("d")+$i,0))).'|';
}
$output = rtrim($output, '|');
echo $output;
答案 3 :(得分:0)
for($i=0; $i<=6; $i++){
$dates[] = date('j', strtotime('+ '.($i+1).' days');
}
echo implode('|', $dates);