我用这个生成当前一天和下一个六天:
<?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
此任务非常适合do..while
循环:
$i = 0;
do {
echo strtoupper(date("j",mktime(0, 0, 0, 0,date("d")+$i,0)));
} while ($i++ < 6 && print "|");
空间之所以存在,是因为您的输出中有'n
。任何空白都将由浏览器生成一个空格。
使用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
需要实现某种interator才能发挥作用。。。
您可以使用一个变量并将其附加到文本中,然后在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;
for($i=0; $i<=6; $i++){
$dates[] = date('j', strtotime('+ '.($i+1).' days');
}
echo implode('|', $dates);