Ben hafta sayısı X verilen bir kullanıcı varsa, basit bir durum var, ve ben bu haftaki Pazartesi tarihini (örneğin 12 Aralık) bulmak gerekir. Bu nasıl elde ederim? Ben yıl ve hafta biliyorum.
Ağırlıklı olarak önceki tasarılara dayalı bazı kod:
$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));
Başlamak için bir fikir:
Yukarıda bir gün eklemeniz gerekebilir.
Eğer hafta numaralarını hesaplanırken yol ve hafta başından bağlı olarak bu bazen olabilir. (Yani yılın ilk haftasında Pazartesi önceki yıl aslında eğer!)
TEST BU İYİCE - ama geçmişte benzer calcualtions için benzer bir yaklaşım kullandım.
Due to reputation restriction i can't post multiple links for details check
http://php.net/manual/en/function.date.php ve http://php.net/manual/en/function.mktime.php
you can use something like this : use mktime to get a timestamp of the week : $stamp = mktime(0,0,0,0,<7*x>,) {used something similar a few years back, so i'm not sure it works like this} and then use $wDay = date('N',$stamp). You now have the day of the week, the timestamp of the monday should be
mktime (0,0,0,0, <7 * x> - $ wDay +1) {'N' parametresi Pazar için pazartesi, 6 için 1 döndürür}
Bu yardımcı olur umarım
//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)));
}
Put Out
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