Gibt es in PHP einen Monatstring wie "November", wie kann ich 11 ohne eine 12-teilige switch-Anweisung zurückgeben?

8

I.e.

%Vor%

Ich habe Beispiele gesehen, die mktime verwenden, wenn man die Nummer des Monats angibt und die Monatszeichenfolge zurückgibt, aber nicht umgekehrt.

    
stormist 23.04.2010, 20:13
quelle

6 Antworten

21

Versuchen Sie

%Vor%

Wenn Sie dies häufig tun müssen, sollten Sie ein Array verwenden, bei dem diese Werte fest codiert sind:

%Vor%

Kann es auch anders herum tun, indem Sie die Namen für die Schlüssel und Zahlen für die Werte verwenden.

Mit den Namen für Werte, die Sie tun

%Vor%

und mit Namen für Schlüssel, die Sie tun

%Vor%

Ich finde die Verwendung der Zahlen für die Schlüssel etwas besser im Allgemeinen , obwohl für Ihr UseCase die Namen für die Schlüssel Annäherung wahrscheinlich komfortabler ist. Mit nur 12 Werten im Array sollte zwischen den Array-Approches kein großer Unterschied bestehen.

Ein schneller Benchmark bemerkte einen Unterschied von 0,000003s gegenüber 0,000002s, während die Zeitumwandlung 0,000060s auf meinem Computer einnimmt (lies: kann sich auf anderen Computern unterscheiden).

    
Gordon 23.04.2010, 20:15
quelle
7

Was ist mit strtotime() , um November in einen Zeitstempel zu konvertieren und dann? funktioniert die Funktion date() mit dem Format n Nimm die entsprechende Nummer:

%Vor%

Gibt die folgende Ausgabe aus:

%Vor%


Und nur zum Spaß, eine Portion Code wie der folgende:

%Vor%

gibt Ihnen die Liste aller Monate mit ihren entsprechenden Zahlen - zeigen, dass diese Idee für alle 12 Monate und nicht nur November funktioniert; -)

    
Pascal MARTIN 23.04.2010 20:16
quelle
5

Ich kann mir nicht vorstellen, dass dies effizienter ist, aber es funktioniert

%Vor%     
Fletcher Moore 23.04.2010 20:17
quelle
1

Das Einzige, was mir aus dem Kopf geht, ist, jede Saite als Variable zu definieren und sie = die entsprechende Zahl zu machen. Aber andererseits bin ich ziemlich neu, also bin ich gespannt zu sehen, ob es leichtere Möglichkeiten gibt (=

    
Rob 23.04.2010 20:17
quelle
1
%Vor%     
cosy 23.04.2010 21:04
quelle
0

Abhängig von Ihrem Szenario wäre die effizienteste Lösung, ein assoziatives Array zu erstellen wie:

%Vor%

Und dann sind deine Lookups super einfach:

%Vor%     
Brad Heller 23.04.2010 21:05
quelle

Tags und Links