PHP strtotime für Juni kehrt Juli zurück

8

Ich bin ratlos, warum die folgende PHP-strtotime-Funktion '07' als Monatszahl zurückgibt und nicht '06', wenn $ montactToGet = 'June':

%Vor%

Bei der Suche scheint es, dass es an den Standard-Datumsparametern (in diesem Fall Tag und Jahr) liegt, da ich sie nicht angegeben habe. Wäre das der Grund?

Irgendwelche Vorschläge geschätzt!

    
Wookie 31.07.2012, 13:14
quelle

3 Antworten

5

TL; DR

Sie haben Recht

%Vor%

Allerdings funktioniert das :

%Vor%

Das Problem wurde erklärt

Heute ist 31. July 2012 und da Sie nur einen Monat angeben, werden der aktuelle Tag und das aktuelle Jahr verwendet, um ein gültiges Datum zu erstellen.

Siehe die Dokumentation :

  

HINWEIS

     

Die Funktion erwartet eine Zeichenfolge mit einem englischen Datumsformat und versucht, dieses Format in einen Unix-Zeitstempel (die Anzahl der Sekunden seit dem 1. Januar 1970, 00:00:00 UTC), relativ zu dem in angegebenen Zeitstempel, zu zerlegen jetzt, oder die aktuelle Zeit, wenn jetzt nicht geliefert wird.

Alternativen

Sie könnten date_parse_from_format() oder strptime() , um mit einem etwas anderen Ansatz zu erreichen, was Sie wollen.

(Danke an johannes_ und johann__ für ihre Eingabe)

    
fdomig 31.07.2012 13:18
quelle
1

Fixed mit:

%Vor%

Aber ich verstehe immer noch nicht warum, denn "m" ist ein gültiges Datumsformat

    
Jerska 31.07.2012 13:22
quelle
1

Heute ist der 31. Juli. Ein strtotime mit nur "June" wird interpretiert als 31 June = & gt; 1 July .

Tatsächlich:

%Vor%

natürlich ... nur today 31 Jul 2012 :) Morgen wird alles funktionieren.

Du hast Glück, weil du diesen Fehler gerade heute gefunden hast;)

    
Luca Rainone 31.07.2012 13:37
quelle

Tags und Links