PHP nth haftaki Pazartesi tarihini öğrenin?

5 Cevap php

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.

5 Cevap

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:

  • Yılın ilk günü almak
  • eklemek 7 * X gün
  • "Geçen Pazartesi" olarak geçen, strtodate kullanın ve tarih yukarıda hesaplanan.

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

Ben bu işe inanıyorum:

strtotime("+$week week mon jan $year"); // mon = monday, jan = january

Olsa test etmedi.

  //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