2017-07-20 158 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

如果你认为date()返回integer(如time()一样),你可以增加,也仍然没有一个一天,但一个秒就增加。