Erste. Sie haben Fehler in Funktion strtotime
PHP documentation
int strtotime (string $time [, int $now = time() ])
Sie sehen müssen Sie den Code ändern, um Integer-Zeitstempel in dieser Funktion übergeben.
Sekunde. Sie verwenden Format d.m.Y H: ich, die Zeit Teil enthält. Wenn Sie nur Daten vergleichen möchten, müssen Sie den Zeitabschnitt entfernen, z. `$ date = date (" d.m.Y ");` `
Dritte. Ich bin nicht sicher, ob es für Sie auf die gleiche Art und Weise funktioniert, aber meine PHP versteht nicht, Datumsformat von $timestamp
und gibt 01.01.1970 02.00 in $match_date
$timestamp = "2014.09.02T13:34";
date('d.m.Y H:i', strtotime($timestamp)) === "01.01.1970 02:00";
Sie müssen überprüfen, ob strtotime($timestamp)
gibt die korrekte Datumszeichenkette zurück. Wenn nein, müssen Sie das Format angeben, das in der Variablen $timestamp
verwendet wird. Sie können diese über einen Link Funktionen tun date_parse_from_format
oder DateTime::createFromFormat
Dies ist ein Arbeits Beispiel ist:
$timestamp = "2014.09.02T13:34";
$today = new DateTime(); // This object represents current date/time
$today->setTime(0, 0, 0); // reset time part, to prevent partial comparison
$match_date = DateTime::createFromFormat("Y.m.d\\TH:i", $timestamp);
$match_date->setTime(0, 0, 0); // reset time part, to prevent partial comparison
$diff = $today->diff($match_date);
$diffDays = (integer)$diff->format("%R%a"); // Extract days count in interval
switch($diffDays) {
case 0:
echo "//Today";
break;
case -1:
echo "//Yesterday";
break;
case +1:
echo "//Tomorrow";
break;
default:
echo "//Sometime";
}
Wie ist '$ timestamp' definiert und wo? –
Überprüfen Sie das Datum mit strtotime – Khushboo
Ich würde Ihnen raten, ** Datetime ** -Objekt zu betrachten .. Und höchstwahrscheinlich Ihre $ Timestamp wird nicht korrekt konvertiert. – Naruto