2009-11-16 131 views

回答

7

主要基於先前提出的建議有些代碼:

$predefinedYear = 2009; 
$predefinedWeeks = 47; 

// find first mоnday of the year 
$firstMon = strtotime("mon jan {$predefinedYear}"); 

// calculate how much weeks to add 
$weeksOffset = $predefinedWeeks - date('W', $firstMon); 

// calculate searched monday 
$searchedMon = strtotime("+{$weeksOffset} week " . date('Y-m-d', $firstMon)); 
1

一個想法,讓你開始:

  • 採取年第一天
  • 加7 * X天
  • 使用strtodate,傳遞「最後一個星期一」和上面計算的日期。

可能需要在上面添加一天。

根據您計算星期數和星期開始的方式,有時可能會出現這種情況。 (即,如果一年中第一週的星期一實際上是在前一年!)

完全測試 - 但我過去曾對類似的計算方法使用過類似的方法。

0

由於聲譽限制我不能發佈多個鏈接 查詢詳情

http://php.net/manual/en/function.date.phphttp://php.net/manual/en/function.mktime.php

你可以使用這樣的事情: 使用mktime獲得一週的時間戳:$郵票= mktime(0,0,0,0,< 7 * x>,){幾年前使用過類似的東西,所以我不確定它是如何工作的} 然後使用$ wDay = date('N' ,$蓋章)。您現在有星期幾,星期一的時間戳應該是

mktime(0,0,0,0,< 7 * x> - $ wDay + 1,){'N'參數返回1週一,6週日}

希望這有助於

0
//To calculate 12 th Monday from this Monday(2014-04-07) 
    $n_monday=12; 
    $cur_mon=strtotime("next Monday"); 
    for($i=1;$i<=$n_monday;$i++){ 
     echo date('Y-m-d', $cur_mon); 
     $cur_mon=strtotime(date('Y-m-d', strtotime("next Monday",$cur_mon))); 
    } 

出把

2014-04-07 
2014-04-14 
2014-04-21 
2014-04-28 
2014-05-05 
2014-05-12 
2014-05-19 
2014-05-26 
2014-06-02 
2014-06-09 
2014-06-16 
2014-06-23 
相關問題