Ich habe eine Benutzereingabe in Web-Formular in HTML5 type="date"
Feld. Dann wird dieser eingegebene Wert (zusammen mit anderen) als JSON-Dokument in der MySQL-Datenbank gespeichert. Jetzt muss ich dieses Datum extrahieren und es in ein generiertes MS Word-Dokument mit einem bestimmten Format drucken. Groß! Aber wie Sie wissen HTML5 Datumsfeld akzeptiert Datumsformat abhängig von Benutzer Gebietsschemata, Einstellungen usw. Ich habe festgestellt, dass alle in verschiedenen Browsern eingegebenen Daten in DB im "Y-m-d" -Format gespeichert sind. Ist das wirklich in allen Fällen so? Kann ich mich auf dieses Format für die zukünftige Verwendung verlassen? Konnte keine Spezifikationsinformationen zu dem Thema finden. Wenn man nicht auf "Y-m-d" -Format verlassen kann, gibt es irgendwelche PHP-Bibliotheken für "raten" Datumsformat?Erraten Datumsformat mit PHP
0
A
Antwort
1
Erstens, warum speichern Sie JSON-Dokument in MySQL-Datenbank statt einer geeigneteren Dokumentendatenbank (z. B. MongoDB)?
Wie auch immer, basierend auf this und this weicht das angezeigte Datumsformat vom tatsächlichen Wert ab. Der Datumswert in der HTTP-Anfrage wird immer als yyyy-mm-dd
formatiert, welches das ISO 8601 Format ist und ich denke, es sollte zuverlässig sein.
In PHP können Sie Datumszeichenfolgen mit der Klasse DateTime verarbeiten. Diese Klasse unterstützt viele verschiedene Datumsformate. Zum Beispiel:
// timezone is set based on your system preferences if not set
$date1 = new DateTime('2017-04-27', new DateTimeZone('+00:00'));
$date2 = new DateTime('27 April 2017', new DateTimeZone('+00:00'));
$date3 = new DateTime('2017-04-27T00:00:00+00:00');
var_dump($date1 == $date2); // bool(true)
var_dump($date1 == $date3); // bool(true)
Wenn das Datum Zeichenfolge falsch ist, wird eine Ausnahme ausgelöst:
try {
$date = new DateTime('2017 4 27');
} catch (Exception $e) {
echo $e->getMessage(); // DateTime::__construct(): Failed to parse time string (2017 4 27) at position 5 (4): Unexpected character
}
in Ihrem Fall So können Sie Sie diese Klasse für Datum Validierung und als richtige Ausgabeformatierung, zB:
$dateString = '2017-04-27T14:22:11+00:00';
try {
$date = new DateTime($dateString);
echo $date->format('Y-m-d'); // 2017-04-27
} catch (Exception $e) {
// do something else
}
Verwandte Themen
- 1. PHP Datumsformat
- 2. PHP Datumsformat
- 3. Zufallszahl erraten
- 4. PHP Datumsformat und strtotime
- 5. PHP Datumsformat Ausgabe
- 6. PHP Regex für Datumsformat
- 7. Fehler mit Datumsformat in PHP und SQL
- 8. Echo ein spezielles Datumsformat mit PHP
- 9. PHP Datumsformat mit Intl-Aware Tag Suffix?
- 10. Datumsformat in PHP für Date.Parse
- 11. PHP-Konvertierung Datumsformat funktioniert nicht
- 12. Neuronales Netz Blind erraten
- 13. Erraten Spiel in Javascript
- 14. Asp.net Erraten Controller Name
- 15. Java „Erraten Nummer“ Spiel
- 16. Erraten Zufallszahl Spiel Python
- 17. Erraten Sie die berührte UIImageView
- 18. Wie man Datumsformat in PHP handhabt
- 19. Erstellen Sie benutzerdefinierte Datumsformat in PHP
- 20. Mehrstufige logistische Regression Erraten Parameter
- 21. Python - Hangman Letter bereits erraten
- 22. VBScript Erraten Sie eine Nummer
- 23. Erraten Spiel - in Schleife stecken.
- 24. Datumsformat von MySQL in PHP ändern
- 25. PHP preg_match ein Datumsformat "yyyy-MM"
- 26. Wie ISO8601 zu Datumsformat in PHP
- 27. Wie Tag Datumsformat PHP/Laravel ändern
- 28. Konvertieren von PHP-Datum in Javascript-Datumsformat
- 29. Datumsformat von PHP in Java umwandeln?
- 30. PHP Datumsformat zu Moment js Format
Danke, Lukas, für MDN und Google Developers. Sieht so aus, als hätte ich zu wenig gegoogelt, um selbst eine Antwort zu finden. Der wichtigste Teil ist, dass die Anfrage immer in JJJJ-MM-TT-Form gesendet wird. – erop
Meine ganze Anwendung ist MySQL-abhängig. Aber ich muss dynamische Formulare für die Eingabe von Dokumentenattributen erstellen. Neue JSON-Typenfelder, die in MySQL 5.7.6 gestartet wurden, helfen mir sehr bei der Erweiterung der App-Funktionalität. – erop