Ich habe ein Problem, das Datum von Montag in der aktuellen Woche zu erhalten.
%Vor%Wenn ich den obigen Code auf meinem lokalen Rechner (PHP 5.3) ausführe, gibt er korrekt '2011-03-07' aus, aber der gleiche Code auf meinem Server (PHP 5.2) gibt '2011-03-14' aus ( Das ist Montag nächste Woche).
Ich habe versucht, ein Datum ('W') auf beiden Rechnern zu laufen und erhalte das gleiche Ergebnis (10).
Bearbeiten: Irgendwelche Ideen, wie funktioniert das richtig?
Vielen Dank im Voraus.
Nicht dass ich genau dieses Problem gesehen habe, aber ich habe sehr ähnliche gesehen. strtotime scheint das Verhalten zwischen verschiedenen Versionen von PHP zu ändern, und abgesehen von den einfachen Operationen (z. B. "+1 Woche") ist es schwierig zu garantieren, dass die Funktionalität gleich bleibt.
Wenn du nicht in der Lage bist, auf 5.3 zu aktualisieren, was, wie es richtig herausgestellt wurde, eine Verbesserung zu sein scheint, kann ich nur mit einigen Permutationen spielen. Es ist oft möglich, die richtige Antwort aus älteren Versionen von strtotime zu bekommen, indem man die Frage umformuliert. Beispiele könnten sein ...
Führen Sie den Befehl "date" aus der CLI-Eingabeaufforderung auf dem Server und Ihrem lokalen Desktop aus. Dadurch wird überprüft, ob auf beiden Systemen das gleiche Datum angezeigt wird.
Schau dir das an:
"Seien Sie sich bewusst, dass Sie sich nicht auf diese Funktion verlassen können, um ein Datum zu validieren, da es wahnsinnige Daten wie den 31. Februar akzeptiert.
Auch die Funktion "... week" an sich kann nicht das tun, was Sie erwarten. Wenn an einem Sonntag verwendet, gibt "nächste Woche" keinen Zeitstempel des nächsten Montag, sondern des folgenden Montag zurück. In ähnlicher Weise wird ein Zeitstempel für den Montag der aktuellen Woche zurückgegeben, wenn "vorherige / letzte Woche" verwendet wird, und "diese Woche" gibt einen Stempel des Montag der nächsten Woche (d. H. Des folgenden Tages) zurück. Dies ist nicht der "Woche beginnt am Sonntag" -Effekt, da dies bedeuten würde, dass alle zurückgegebenen Zeitstempel an einem Sonntag sein müssten und keiner von ihnen ist. "
Ff heute ist Sonntag, Sie werden sich irren.
Hier ist eine andere Lösung, die funktioniert (eigentlich die einzige, die für mich funktionierte):
%Vor%