修改PHP日期输出


Modifying PHP date output

我用这个生成当前一天和下一个六天:

 <?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);