Prüfen, ob $Datum ist gleich 0000-00-00 00:00:00
Möchte ich eine Logik, wenn $durch ist, gleich kein Datum, dann möchte ich die Daten ab 2000. Mein code unten funktioniert nicht.
if($due == '0000-00-00 00:00:00'){
$due = strtotime('2000-00-00 00:00:00');
}
Bitte geben Sie die Ausgabe des
Wo ist dieses Datum kommen?
Wenn Sie abgerufen haben, der Wert aus einer Datenbank, kann es besser sein, führen Sie diese Logik in Ihrer Abfrage. es sei denn, Sie haben zusätzliche Maßnahmen zu ergreifen, innerhalb der
0000-00-00 00:00:00 ist aus einem Datenbank-Feld.
var_dump($due);
Wo ist dieses Datum kommen?
Wenn Sie abgerufen haben, der Wert aus einer Datenbank, kann es besser sein, führen Sie diese Logik in Ihrer Abfrage. es sei denn, Sie haben zusätzliche Maßnahmen zu ergreifen, innerhalb der
if()
0000-00-00 00:00:00 ist aus einem Datenbank-Feld.
InformationsquelleAutor Muhammad Imran Tariq | 2012-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Speicherung von strtotime() in $fällig, dann müssen Sie es vergleichen, wie das auch
oder einfach
aber wenn $durch ist, aus der db als string, würden Sie wollen, um strtotime() es:
Bewusst, Zeitzonen, though. Das ist, strtotime('0000-00-00 00:00:00 UTC') != strtotime('0000-00-00 00:00:00 EST'). Dies könnte auch brechen Ihre vergleichen.
InformationsquelleAutor Umbrella
Müssen Sie sicherstellen, dass Sie vergleichen die Werte im selben format. Mit dem, was Sie derzeit haben, auf der drei Dinge passieren:
$due
ist einint
die Zeichenfolge, die Sie vergleichen es mit0000-00-00 00:00:00
umgewandelt werden, um eineint
, die in0
, und$due
wird im Vergleich mit0
. Dies führt nur zu einer übereinstimmung, wenn$due === 0
.$due
ist einbool
der string konvertiert werden, um einebool
, die inTRUE
, und Sie wird nur dann entsprechen, wenn$due === TRUE
.$due
beliebiger anderer Typ ist, wird er in einen string umgewandelt, und die beiden werden verglichen als Zeichenketten. Sie wird nur dann entsprechen, wenn$due === '0000-00-00 00:00:00'
.Ob würde sagen, dass Sie wahrscheinlich benötigen, um vergleichen Sie die Werte als ganze zahlen. Dies bedeutet, dass Sie brauchen, um passieren, alle Saiten durch
strtotime()
- einschließlich$due
, wenn es ein string ist. Da Sie nicht zeigen, ein Beispiel Wert$due
kann ich nicht bieten ein genaues arbeiten-code.InformationsquelleAutor DaveRandom
Ich weiß, dass dies ist eine alte Frage, aber diese Antwort kann helfen, jemand
strtotime liefert einen timestamp bei Erfolg, andernfalls FALSE.
Grüße.
InformationsquelleAutor Ricardo
Ich weiß nicht, warum strtotime funktionieren nicht korrekt für mich. Wahrscheinlich ist es wegen der Zeitzone und andere Sachen.
Wie immer Lust auf regulären Ausdrücken funktioniert wie ein Charme. Ich bin irgendwie süchtig danach!
InformationsquelleAutor Hossein Khalesi
strtotime(YourDate) != NULL
funktioniert auch.Arbeitete ich auf einem DOB und DOM (Datum der Eheschließung) - Abschnitt der Datenbank. Scheint die NULL default ' gespeichert als Datum 0000-00-00. Das ist irgendwie eine blöde Sache, um ehrlich zu sein.
Oder vielleicht war es meine Dummheit, um das Feld ein DATE-Feld, statt dass es ein VARCHAR und halten Sie die STRTOTIME Wert gibt.
InformationsquelleAutor Yousof K.
ich würde gerne vorschlagen einfachste form
InformationsquelleAutor Nikunj Dhimar
Hier ist die Lösung, um zu überprüfen, ob die datetime-Feld in der Datenbank (mysql) ist null oder
'0000-00-00 00:00:00'
Auswahl alle mit der starttime ist null oder 0000-00-00 00:00:00' und endtime ist nicht ( oder null '0000-00-00 00:00:00')
In Datenbank end -
in php Ende
InformationsquelleAutor Hasib Ullah Khan