2017-07-20 7 views
-1

私はこのようなことをしようとしていますが、私は離れているように感じます。私のforeachループは6つの結果を返します。私は彼らに明日から始まる週の増分を表示したい。今日の金曜日は、土曜日、日曜日、月曜日、火曜日、水曜日、木曜日です。foreachループで曜日を増やすにはどうすればよいですか?

<?php 
    date_default_timezone_set("America/New_York"); 
    $today = date("l"); 
?> 

<?php 
foreach() { 
    echo date("F j, Y", strtotime($today++)) . "<br>"; 
} 
?> 

答えて

-1

はこれを試してみてください:

<?php 
date_default_timezone_set("America/New_York"); 
$today = date("Y-m-d"); 

for($i = 1; $i <= 7; $i++) { 
    echo date('l', strtotime('+'.$i.' days', strtotime($today))) . "<br>"; 
} 

?> 
0

John Conde's answerは、PHPの日時と日付間隔と期間の能力の素敵なデモンストレーションではあるが、この単純な作業のようなものをはるかに簡潔に行うことができます。

$date = new DateTime(); 
for($days = 6; $days--;) { 
    echo $date->modify('+1 days')->format('l') . '<br>'; 
} 

View online demo

ここでフォーマットにはl(小文字のL)を使用していますが、質問で要求されたように完全な平日の名前が表示されますが、DateTime::format()any format supported by date()を認識します。あなたはdate()あなたが意図した方法によって返された結果をインクリメントすることはできませんので


独自の例では動作しませんでした理由があります。 date()は、stringを返します。インクリメント演算子(++)が意味することを魔法のように理解しているオブジェクトではありません。 PHPはこの種のoperator overloadingをサポートしていません。

integer(たとえばtime()のように)増加したとした場合、1日で1秒増分しません。

関連する問題