echo $begrüßung;
Die Beispiele [bei strftime()] da zeigen mir ja lediglich, wie ich aus einem Datum die Kalender-Woche ermittel.
Bei mir ist es genau anders herum.
Ja, genau andersrum versucht die Funktion strptime() aus einem formatierten String und einer Format-Angabe wieder eine Zeit zu ermitteln.
Ich habe nur das Jahr und die Kalenderwoche und möchte daraus jetzt den ersten Wochentag, also das Datum vom Montag der entsprechenden Kalenderwoche ermitteln.
Das Jahr, vierstellig, hat das Format-Zeichen %Y.
Für die Wochennummer gibt es %U, %V und %W (Das %G aus meiner ersten Posting war nicht richtig.)
Außerdem soll der erste Tag der Woche Montag sein: %u=1.
Wenn du als Formatierung angibst: %Y-%V-%u und einen Wert 2007-6-1 (Jahr:2007, Woche:6 gemäß ISO, Wochentag: Montag) und das dem strptime() zum Parsen gibst, bekommst du:
Array ( // gekürzt
[tm_mday] => 0
[tm_mon] => 0
[tm_year] => 107
[tm_wday] => 1
)
Das ist nicht verwendbar, weil mday und mon jeweils 0 sind. Nächster Versuch mit %Y-%W-%u:
Array ( // gekürzt
[tm_mday] => 5
[tm_mon] => 1
[tm_year] => 107
[tm_wday] => 1 )
Das entspricht dem 5. Februar 2007 - stimmt. Noch ein Versuch mit dem Jahr 2008
Array ( // gekürzt
[tm_mday] => 11
[tm_mon] => 1
[tm_year] => 108
[tm_wday] => 1 )
Nicht verwendbar, hätte der 4. sein müssen. Hier ist eine Korrektur der Wochennummer notwendig. Schauen wir mal durch, wie sich das ab 2000 verhält:
2000 (1.Jan=Sa) stimmt
2001 (1.Jan=Mo) stimmt
2002 (1.Jan=Di) stimmt nicht
2003 (1.Jan=Mi) stimmt nicht
2004 (1.Jan=Do) stimmt nicht
2005 (1.Jan=Sa) stimmt
2006 (1.Jan=So) stimmt
2007 (1.Jan=Mo) stimmt
2008 (1.Jan=Di) stimmt nicht
2009 (1.Jan=Do) stimmt nicht
2010 (1.Jan=Fr) stimmt
Finde nun die Regel, wann eine Korrektur notwendig ist, dann kannst du die beim Verwenden von strptime() berücksichtigen.
echo "$verabschiedung $name";