| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

03-06-2008, 20:24
|
|
mangu
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 11
|
|
Aktuelle Kalenderwoche
Hallo
Das Problem hab ich zwar gelöst, aber es würde mich trotzdem interessieren. Mit strftime("%W") sollte man doch eigentlich die aktuelle Kalenderwoche angezeigt bekommen.
Wir haben gerade Woche 23, strftime("%W"); sagt mir aber Kalenderwoche 22! Kann sich das jemand erklären?
Ich hab nun eine andere Lösung gefunden: (int)date('W') zeigt die korrekte Woche an.
Gruss
mangu
|

10-06-2008, 12:38
|
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 461
|
|
so mach ich das
PHP-Code:
$kw=strftime("%V") ;
|

10-06-2008, 13:01
|
|
mangu
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 11
|
|
strftime("%V") gibt mir überhaupt nichts aus
|

10-06-2008, 13:04
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Du musst die Rückgabe ja auch irgendwie verarbeiten. echo wäre zum Beispiel ne Idee ... Andernfalls nimm mal date("W");
|

10-06-2008, 13:13
|
|
mangu
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 11
|
|
Das ist mir natürlich schon klar
$kw=strftime("%V") ;
echo $kw;
Gibt nichts aus!
...und date("W") klappt, wie ich ja im ersten Post geschrieben habe. Trotzdem würde es mich interessieren, warum strftime("%W") immer nur die vergangene Woche ausgibt.
|

10-06-2008, 13:21
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
var_dump($kw)? Error-Reporting hochgeschraubt?
So oder so, der Unterschied könnte von der Interpretation herrühren, wann eine Woche eine Woche ist und dementsprechend, welche Woche die erste ist.
|

10-06-2008, 13:27
|
|
H2O
PHP Junior
|
|
Registriert seit: Jul 2007
Beiträge: 937
|
|
Schau doch einfach mal im Handbuch unter strftime() nach, wie die Format-Parameter %U, %V und %W definiert sind. So nebenbei: das aktuelle Jahr begann mit einem Dienstag.
__________________
Gruss
H2O
|

10-06-2008, 13:39
|
|
mangu
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 11
|
|
$kw=strftime('%W') ;
var_dump($kw);
gibt string(2) "23" zurück
$kw=strftime('%V') ;
var_dump($kw);
gibt bool(false) zurück
error_reporting(E_ALL) bringt keinen Fehler über diese Zeile(n).
Werde wohl nie wirklich dahinterkommen
|

10-06-2008, 15:42
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
mit welchem System versuchst du das auszugeben ...  eventuell ist die Systemzeit der umgebung daran schuld ... und strftime('%V') führt auch bei mir zu keinem ergebnis
|

10-06-2008, 16:03
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Da stinkt ja schon wieder nach Windows.
|

10-06-2008, 17:32
|
|
dunixphp
Newbie
|
|
Registriert seit: Apr 2008
Beiträge: 31
|
|
|

10-06-2008, 17:39
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
Oo? irgendetwas verwirrt mich jetzt aber doch. laut dem deutschen Kalender haben wir die 24 KW. also warum geht dann mein Linux System von 23 aus.
kann das echt am 1.1.1970 liegen?
Kleiner Test mit strftime.
PHP-Code:
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de' <br />";
echo strftime("%W KW ein %A im Monat %B den %d.%m.%Y ist der %j Tag im Jahr.",time());
Ausgabe:
Code:
Preferred locale for german on this system is 'de_DE@euro'
23 KW ein Dienstag im Monat Juni den 10.06.2008 ist der 162 Tag im Jahr.
und es ist definitiv kein Windows System!
|

10-06-2008, 17:59
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Was ist denn daran so schwer zu kapieren?
Zitat:
|
%W - Nummer der Woche des aktuellen Jahres, beginnend mit dem ersten Montag als erstem Tag der ersten Woche.
|
Die erste Woche diesen Jahres hat aber schon letztes Jahr angefangen, wie H2O schon angedeutet hat, deswegen nimmt %W die nächste, und hinkt somit um eine hinterher. %V wäre der für uns korrekte Platzhalter. Übrigens im Manual auch mit "Kalenderwoche" bezeichnet, %W nur mit "Woche des Jahres".
Und dann steht da noch mal ein dicker Hinweis:
Zitat:
|
Hinweis: Es ist durchaus möglich, dass Ihre C-Bibliothek nicht alle angegebenen Formatierungszeichen erkennt. In diesem Fall werden diese Zeichen von der PHP-Funktion strftime() nicht unterstützt. Zusätzlich unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. %e, %T, %R und %D (und vielleicht noch weitere) und Zeitangaben vor dem Jan 1, 1970 auf Windowssystemen, einigen Linuxdisrtibutionen und einigen anderen Betriebssytemen nicht funktionieren. Für Windowsbetriebssysteme finden Sie eine komplette Übersicht der gültigen / bekannten Platzhalter im Formatierungsstring auf dieser » MSDN Webseite.
|
|

11-06-2008, 09:13
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
Zitat:
Original geschrieben von unset
Was ist denn daran so schwer zu kapieren?
|
Ein Baum viel Wald
Danke unset.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|