phpbar.de logo

Mailinglisten-Archive

[php] Fw: get weekdays

[php] Fw: get weekdays

Sebastian Mendel lists at sebastianmendel.de
Die Jan 16 10:08:17 CET 2007


Michael Borchers schrieb:
> Keine Idee?! :(

nö, aber

> 
>> folgende funktion, die ich irgendwo gefunden habe, lief wunderbar, bis zum
>> jahreswechsel.
>> er erkennt schon, dass wir uns in der 2.woche des jahres befinden, aber 
>> der
>> timestamp wird nicht korrekt für heute berechnet.
>>
>> laut mysql ist der timestamp für heute, den 08.01.2007:
>> 1168210800
>>
>> doch laut funktion: 1167649200

wie sehen die Daten formatiert aus? (Y-m-d)


>> function get_weekdays($week,$year)
>> {
>> $week_dates = array();
>>
>> // Get timestamp of first week of the year
>> $first_day = mktime(12,0,0,1,1,$year);
>> $first_week = date("W",$first_day);

am 4.1. hast du auf jeden Fall immer die 1. Woche das Jahres (laut ISO
ist die 1. Woche des Jahres die Woche die mindestens 4 Tage im neuen
Jahr hat)

>> if ($first_week > 1) {
>>    $first_day = strtotime("+1 week",$first_day); // skip to next if year
>> does not begin with week 1
>> }

dann sparst du dir das ^^


>>
>> // Get timestamp of the week
>> $timestamp = strtotime("+$week week",$first_day);

schonmal "2007-001" oder 2007W01 osä. mit strtotime() probiert?


>> // Adjust to Monday of that week
>> $what_day = date("w",$timestamp); // I wanted to do "N" but only version
>> 4.3.9 is installed :-(
>>
>>
>> if ($what_day==0) {
>>    // actually Sunday, last day of the week. FIX;
>>    $timestamp = strtotime("-6 days",$timestamp);
>> } elseif ($what_day > 1) {
>>    $what_day--;
>>    $timestamp = strtotime("-$what_day days",$timestamp);
>> }
>>
>> $week_dates[1] = date("Y-m-d",$timestamp); // Monday
>> $week_dates[2] = date("Y-m-d",strtotime("+1 day",$timestamp)); // Tuesday
>> $week_dates[3] = date("Y-m-d",strtotime("+2 day",$timestamp)); // 
>> Wednesday
>> $week_dates[4] = date("Y-m-d",strtotime("+3 day",$timestamp)); // Thursday
>> $week_dates[5] = date("Y-m-d",strtotime("+4 day",$timestamp)); // Friday
>> #   $week_dates[6] = date("Y-m-d",strtotime("+5 day",$timestamp)); //
>> Saturday
>> #   $week_dates[7] = date("Y-m-d",strtotime("+6 day",$timestamp)); //
>> Sunday
>> return($week_dates);
>> }


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive