0

私はこれで現在の日と次の6日を生成しています:

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

4 に答える 4

2

このタスクはdo..whileループに最適です。

$i = 0;
do {
    echo strtoupper(date("j",mktime(0, 0, 0, 0,date("d")+$i,0)));
} while ($i++ < 6 && print "|");

出力にあったため、スペースが存在\nします。空白は、ブラウザによってスペースに変換されます。

于 2013-02-08T14:45:05.993 に答える
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役に立つためには、ある種のインターレーターを実装する必要があります...

于 2013-02-08T15:05:13.753 に答える
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;
于 2013-02-08T14:42:31.017 に答える
0
for($i=0; $i<=6; $i++){
$dates[] = date('j', strtotime('+ '.($i+1).' days');
}
echo implode('|', $dates);
于 2013-02-08T14:44:35.320 に答える