修改PHP日期输出

时间:2013-02-08 14:39:50

标签: php date mktime

我正在生成当天和下一个即将到来的六天:

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

4 个答案:

答案 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);