Konvertieren Sie in PHP ein Datumsformat in ein anderes
Gibt es eine einfache Möglichkeit zur Konvertierung eines Datum-format in ein anderes Datumsformat in PHP?
Habe ich dieses:
$old_date = date('y-m-d-h-i-s'); //works
$middle = strtotime($old_date); //returns bool(false)
$new_date = date('Y-m-d H:i:s', $middle); //returns 1970-01-01 00:00:00
Aber ich würde natürlich gerne wieder eine aktuelle Datum anstatt den crack 'o' dawn. Was mache ich falsch?
InformationsquelleAutor der Frage Tom | 2010-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zweiten parameter
date()
werden muss, um einen korrekten Zeitstempel (Sekunden seit 1. Januar 1970). Übergeben Sie eine Zeichenfolge, die Datum() nicht erkennen kann.Können Sie strtotime() zum konvertieren eines Datums-string in ein timestamp. Aber auch strtotime() nicht erkennt, die
y-m-d-h-i-s
format.PHP 5.3 und bis
Verwenden
DateTime::createFromFormat
. Es ermöglicht Ihnen, genaue Maske - mit derdate()
syntax - Parsen der eingehenden Zeichenfolge Termine mit.PHP 5.2 und unteren
Haben Sie, um eine Analyse der Elemente (Jahr, Monat, Tag, Stunde, minute, Sekunde) manuell mit
substr()
hand und die Ergebnisse zu mktime() , bauen Sie ein timestamp.Aber das ist eine Menge Arbeit! Ich empfehle ein anderes format, strftime() verstehen kann. strftime() versteht alle Datum Eingang kurz
the next time joe will slip on the ice
. zum Beispiel, das funktioniert:InformationsquelleAutor der Antwort Pekka 웃
Der einfachste Weg, dies zu tun ist
Sind, werden Sie zuerst geben Sie die format $dateString ist. Dann sagen Sie es dem format, das Sie möchten $newDateString.
Dies verhindert auch die Verwendung von strtotime, die können hart sein, mit zu arbeiten auf mal.
Wenn Sie nicht die Umwandlung von einem Datum-format in ein anderes, sondern wollen einfach nur das aktuelle Datum (oder Datum und Uhrzeit) in einem bestimmten format, dann ist es sogar noch einfacher:
Diese andere Frage bezieht sich auch auf das gleiche Thema: Convert date-format yyyy-mm-dd => dd-mm-yyyy.
InformationsquelleAutor der Antwort ceiroa
Die Grundlagen
Dem einfachsten Weg, um zu konvertieren ein Datum-format in ein anderes ist die Verwendung
strtotime()
mitdate()
.strtotime()
konvertiert das Datum in eine Unix-Timestamp. Unix-Zeitstempel kann dann übergeben werden, diedate()
für die Konvertierung in das neue format.Oder als Einzeiler:
Beachten Sie, dass
strtotime()
erfordert das Datum in einem gültiges format. Das fehlen einer gültigen format führtstrtotime()
false zurückgeben, die dazu führen, dass Ihr Datum 1969-12-31.Mit
DateTime()
PHP 5.2, PHP bot die
DateTime()
Klasse die es uns bietet leistungsstarke Werkzeuge für das arbeiten mit Daten (und die Zeit). Wir können schreiben Sie den obigen code mitDateTime()
etwa so:Arbeiten mit Unix-timestamps
date()
nimmt ein Unix timeatamp als zweiten parameter und gibt ein formatiertes Datum für Sie:DateTime() arbeiten mit Unix-timestamps, indem ein
@
vor dem Zeitstempel:Wenn der timestamp in Millisekunden (es kann am Ende in
000
und/oder dem Zeitstempel ist dreizehn Zeichen lang), müssen Sie konvertieren Sie es in den Sekunden, bevor Sie Sie konvertieren können, es in ein anderes format. Es gibt zwei Möglichkeiten, dies zu tun:substr()
Trimmen die letzten drei Ziffern können acheived werden mehrere Möglichkeiten, aber mit
substr()
ist die einfachste:Können Sie auch konvertieren des Zeitstempels in Sekunden geteilt durch 1000. Da der timestamp ist zu groß für 32 bit Systeme Mathematik zu tun, werden Sie brauchen, um die Nutzung BCMath Bibliothek, um die Mathematik zu tun, als Streicher:
Um einen Unix-Timestamp können Sie
strtotime()
das gibt einen Unix-Timestamp:Mit DateTime() können Sie
DateTime::getTimestamp()
Wenn Sie PHP 5.2 können Sie die
U
option Formatierung statt:Die Arbeit mit nicht-standard-und mehrdeutigen Datum-Formate
Leider nicht alle Daten, die ein Entwickler hat, mit zu arbeiten sind in einem standard-format. Glücklicherweise PHP 5.3 lieferte uns eine Lösung für, die.
DateTime::createFromFormat()
ermöglicht es uns, um PHP mitzuteilen, in welchem format Datums-Zeichenfolge ist, so kann es erfolgreich analysiert werden in ein DateTime-Objekt für die weitere Bearbeitung.In PHP 5.4 gewannen wir die Fähigkeit zu tun, in der Klasse den Zugriff auf die Instanziierung wurde Hinzugefügt, die ermöglicht es uns, unsere
DateTime()
- code in einem one-liner:InformationsquelleAutor der Antwort John Conde
Versuchen Sie dies:
InformationsquelleAutor der Antwort Sarfraz
Konvertieren
$date
ausdd-mm-yyyy hh:mm:ss
zu einem richtigen MySQL-datetime -Ich gehen so:
InformationsquelleAutor der Antwort Jelle de Fries
sind Sie falsch hier, dies sollte
separator der Zeit ':'
Ich denke, das wird helfen...
ODER
InformationsquelleAutor der Antwort Rifat
Folgenden wird eine einfache Methode zur Umrechnung von Daten in verschiedene Formate.
InformationsquelleAutor der Antwort Peter
Müssen Sie zum konvertieren von $old_date wieder in ein timestamp, wie die Datum-Funktion erfordert einen Zeitstempel als zweites argument.
InformationsquelleAutor der Antwort John Parker
strtotime funktioniert. die Termine sind einfach nicht das gleiche und alle in us-format.
InformationsquelleAutor der Antwort de_nuit
Versuchen Sie dies:
InformationsquelleAutor der Antwort vineet
Dieser einheimischen Art wird Ihnen helfen zu konvertieren alle eingegebenen format in das gewünschte format.
InformationsquelleAutor der Antwort Nishad Up
Diese für mich gelöst,
Ausgabe : 2018-04-18
InformationsquelleAutor der Antwort Arthi Rajgopal
Dies ist der andere Weg, können Sie konvertieren von Datum-format
InformationsquelleAutor der Antwort Varun Malhotra
Nur Zeichenfolgen, für mich ist eine gute Lösung, weniger Probleme mit mysql. Erkennt das aktuelle format und ändert es, falls erforderlich, diese Lösung ist nur für Spanisch/Französisch format und Englisch format, ohne Verwendung der php-datetime-Funktion.
VERWENDEN
InformationsquelleAutor der Antwort Alejandro Aranda