2015-10-20 69 views
-1

我有一个下拉列表,我想显示当周星期一和过去8周的日期。我该怎么做。这是我工作的代码示例。获取本周的每个星期一和过去8周的日期?

$maxDays=date('t'); 

for($i=0;$i<=$maxDays;$i++){ 
     echo date("m-d-Y",strtotime("monday")); 
     echo '<br>'; 
    } 
+0

你想得到最新的,和前2个月星期一的日期? –

+0

我想获得当前每个星期一的日期和最近8周的日期 –

+0

首先你必须得到所有星期的数字,从那个你不喜欢拿星期一日期。 –

回答

0

::你的具体问题将回落到

我想获得当月的每个星期一的日期和过去8周

因此,使用DateTimestrtotime

$date = new \DateTime; 
    $weekDay = 'Monday'; 
    $ts = strtotime('first day of next month'); 
    $date->setTimestamp($ts); 
    $month = $date->format('m'); 
    $thisMonthTs = strtotime('first day of this month'); 
    $date->setTimestamp($thisMonthTs); 
    $thisMonth = $date->format('m'); 

    while ($month >= $thisMonth) { 
     $ts = strtotime("previous $weekDay", $ts); 
     $date->setTimestamp($ts); 
     $month = $date->format('m'); 
     echo $date->format('d-m-Y'); 
     echo '<br>'; 
    } 

    for ($n = 0; $n < 7; $n++) { 
     $ts = strtotime("previous $weekDay", $ts); 
     $date->setTimestamp($ts); 
     echo $date->format('d-m-Y'); 
     echo '<br>'; 
    } 

解决方案可能b e改进了,因为这是一个快速技巧。但所有你需要的是datetime和strtotime

+0

的示例代码非常感谢你的解决方案 –

2

您可能想看看moment.php,这是一个PHP中的库,用于计算所有不同类型的日期/月/年。你说

$m = new \Moment\Moment('2015-10-15T12:30:00', 'CET'); // last monday, that is 
for($i=1;$i<=8;$i++){ 
    echo $m->subtractDays($i*7)->format("m-d-Y"); // $i multiplied by seven 
    echo '<br>'; 
} 
相关问题