Ich muss Monthname zu Integer des Monats konvertieren (und eine große switch-Anweisung vermeiden). irgendwelche Ideen?gibt es irgendetwas in Javascript, das "August" in 8 konvertieren kann?
Antwort
Erstellen Sie einfach ein Datum in diesem Monat, analysieren sie und verwenden getMonth()
wie diese
function convertMonthNameToNumber(monthName) {
var myDate = new Date(monthName + " 1, 2000");
var monthDigit = myDate.getMonth();
return isNaN(monthDigit) ? 0 : (monthDigit + 1);
}
alert(convertMonthNameToNumber("August")); //returns 8
alert(convertMonthNameToNumber("Augustsss")); //returns 0 (or whatever you change the default too)
alert(convertMonthNameToNumber("Aug")); //returns 8 - Bonus!
alert(convertMonthNameToNumber("AuGust")); //returns 8 - Casing is irrelevant!
Sie können ein Array (Name/Vale-Paare) in Ihrem Code erstellen, da es nur 12 Monate ist und eine Funktion schreiben, um es zu tun.
var months = {August: 8};
var monthtbl = { 'January': 1, 'February': 2, /* ... */, 'August', 8, /* ... */, 'December': 12 };
// ...
var monthNumber = monthtbl[monthName];
bearbeiten aber tun es die Art und Weise @Chad schlägt :-)
Wenn Sie es für alphabetische Groß-/Kleinschreibung unempfindlich machen möchten, erstellen Sie das Objekt ("monthtbl") in Kleinbuchstaben und verwenden Sie dann
var monthNumber = monthtbl[monthName.toLowerCase()];
+1 Das ist der Ansatz! – Achilles
Dies ist solide. Aus Interesse: Wie würde ich diesen Fall unsensibel machen? Für den Fall, dass ich eine Benutzereingabe analysieren muss? –
FWIW, wird dies natürlich schneller sein, wenn Sie das viele Male tun. –
Eine weitere Option nur da draußen zu werfen, ein Array verwenden könnte und $.inArry()
, wie folgt aus:
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
function getMonth(name) {
return $.inArray(name, months) +1;
}
Obwohl durch Ihre vorherigen Fragen zu urteilen, das Datum direkt aus dem jQuery UI Datepicker Objekt ziehen kann viel einfacher sein.
function monthToNumber(month) {
return new Date(Date.parse("1 "+month)).getMonth()+1;
}
hier Wert hält den Monatsnamen Wert
var month1 = value;
month1 = month1.toLowerCase();
var months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
month1 = months.indexOf(month1);
Bitte erläutern Sie Ihre Antwort kurz, um sie für OP- und andere Leser nützlicher zu machen. –
- 1. Gibt es irgendetwas, das die Vererbung nicht erreichen kann?
- 2. Gibt es eine Lösung, um alle codierten Wörter in das utf-8-Format zu konvertieren?
- 3. Gibt es irgendetwas in .NET, das die Abkürzung aller kulturspezifischen Wochentage erhält?
- 4. Gibt es Zeiger in Javascript?
- 5. Gibt es eine Methode, um Sekunden in LocalDateTime oder ZonedDateTime -Objekt in Java 8 konvertieren
- 6. Zeitstempel in das Datumsformat mit Javascript konvertieren?
- 7. Gibt es Anleitungen zum Konvertieren zwischen JavaScript-Frameworks?
- 8. Gibt es das: HTML-Template-Renderer In JavaScript geschrieben?
- 9. Gibt es ein Tool konvertieren Elemente JavaScript-Code JSX Reagieren
- 10. iOS - Gibt es ein SDK, das HTML5-Webapps in native konvertieren kann?
- 11. Gibt es ein PHP-Skript, das HTML-Tabellendaten in verschiedene Formate konvertieren kann?
- 12. Gibt es ein Werkzeug, das gängige Bildformate (.bmp, jpg, ..) in .emf-Dateien konvertieren kann?
- 13. Gibt es ein Set-Literal in JavaScript?
- 14. Java 8 - LocalDate in ZonedDateTime konvertieren
- 15. Gibt es CSS-Eigenschaften, auf die das JavaScript-DOM nicht zugreifen kann?
- 16. Gibt es irgendetwas auf IBM Softlayer, das AWS Elastic IP entspricht?
- 17. XMLDocument-Objekt in String in Javascript konvertieren
- 18. Gibt es eine Funktion zum Konvertieren eines Twitter-API created_at date in das richtige Format für ColdFusion 8+?
- 19. Gibt es kostenlose ERD-Tool mysql in Unix Suse 8?
- 20. Gibt es eine einfache Möglichkeit, Text in JavaScript in HTML zu konvertieren?
- 21. Gibt es eine Möglichkeit, in URL Yii2 "+" in "-" zu konvertieren?
- 22. Gibt es in Javascript eine Möglichkeit, ein Objektarray in Parameter eines Funktionsaufrufs zu konvertieren?
- 23. Gibt es eine Möglichkeit, ein großes Objekt in JavaScript in ein kleiner zu konvertieren?
- 24. Gibt es eine Möglichkeit, in Netbeans 8 automatisch zu speichern?
- 25. Actionscript in Javascript konvertieren
- 26. Gibt es irgendetwas für Hibernate, das eine JSON (oder XML) -Spalte serialisiert/deserialisiert und sie in echte Modellattribute konvertiert?
- 27. 8-stellige Zahl in DateTime konvertieren Typ
- 28. Gibt es etwas, das nicht in Klammern angezeigt werden kann?
- 29. Konvertieren von Unicode-Codepunkten in UTF-8
- 30. Gibt es eine sichere Verzögerung in JavaScript?
Das ist eine gute Idee! – Pointy
Ich mag das. Was passiert, wenn ich einen ungültigen Monat passiere (wie "Äugust")? –
Erwähnenswert ist, dass * Date.parse() * eine Zahl zurückgibt, die das Datum darstellt, kein tatsächliches Datumsobjekt. Auch * getMonth() * wird * 7 * zurückgeben, nicht * 8 *, da Monate auf Null basieren. –