Wenn ich Daten von einer MySQL-Abfrage bekomme, sind einige von ihnen NULL, weil unbekannt. Wenn ich sie jedoch mit date_create in PHP übersetze, werden Nulldaten standardmäßig durch das heutige Datum ersetzt, was nicht das ist, was ich möchte. Ich habe versucht, die Datumspererety innerhalb des Datumsobjekts null oder eine leere Zeichenfolge ohne Erfolg zu setzen. Gibt es eine Möglichkeit, wie ich dieses Standarddatum loswerden kann?Wie kann ich ein leeres Datum in einem DateTime-Objekt haben?
Antwort
$created_date = $date === null ? null : date_create($date);
Dies ist ein ternärer Ausdruck, $created_date
setzt auf null, wenn $date
null ist, sonst setzt es es date_create($date)
.
Ja, aber es wird ein Null-Objekt erstellt, ich hätte lieber ein Null-Datum innerhalb eines realen Datumsobjekts. – user3542945
Ok, aber das wird ein Null-Objekt erstellen. Ich hätte lieber ein Nulldatum in einem echten Date-Objekt. Aber es ist besser als nichts, danke. – user3542945
Ich verstehe nicht wirklich was du meinst? Wie genau sollte sich ein Nulldatumsobjekt verhalten? Was ist das Jahr, der Monat oder der Tag eines Nulldatums? Was passiert, wenn Sie einem echten Datum ein Nulldatum hinzufügen? – Chris
Es wird wahrscheinlich auf null
gesetzt, wenn eine Datumszeichenfolge nicht in das Objekt DateTime
geparst werden kann.
Ich würde vorschlagen, DateTime::createFromFormat
zu verwenden.
// Adjust the format to your requirements
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
Auf einen besseren Blick auf Ihre Frage unter dachte ich, Sie können auch tun:
if (is_null($date)) {
$date = "0000-01-01";
}
$date = DateTime::createFromFormat('Y-m-d', $date);
Auf diese Weise wird das Datum auf den ersten möglichen Tag eingestellt werden (1. Januar 0000)
Nein! Wie würde ein "leeres" DateTime-Objekt aussehen? Was würden Sie eigentlich mit einem "leeren" DateTime-Objekt tun? –
Eigentlich übersetze ich eine Anwendung von ColdFusion zu PHP. In CF geben alle Datumsfunktionen eine leere Zeichenfolge zurück, wenn sie ein leeres Datum erhalten, das sowohl konsistent als auch sehr handvoll ist. In PHP erzeugt dies einen Fehler. Ich habe Angst, dass ich jedes Mal, wenn ich ein Date verwenden muss, nach Null-Daten suchen muss. – user3542945