Wie kann ich zwei Daten in PHP vergleichen?

Lesezeit: 4 Minuten

Wie kann ich zwei Daten in PHP vergleichen
Ausbeuten

Wie kann ich zwei Daten in PHP vergleichen?

Das Datum wird in der Datenbank im folgenden Format gespeichert

2011-10-2

Wenn ich das heutige Datum mit dem Datum in der Datenbank vergleichen möchte, um zu sehen, welches größer ist, wie würde ich das machen?

Ich habe das versucht,

$today = date("Y-m-d");
$expire = $row->expireDate //from db

if($today < $expireDate) { //do something; }

aber es funktioniert nicht wirklich so. Was ist eine andere Möglichkeit, es zu tun?

  • Weisen Sie die Datenbankdaten einem DateTime-Objekt zu und vergleichen Sie dann diese Objekte. Ein schönes Beispiel finden Sie unter stackoverflow.com/questions/961074/…

    – Petrus

    17. Oktober 2014 um 10:48 Uhr


1646945046 907 Wie kann ich zwei Daten in PHP vergleichen
Hugo Peixoto

Wenn alle Ihre Daten nach dem 1. Januar 1970 liegen, könnten Sie Folgendes verwenden:

$today = date("Y-m-d");
$expire = $row->expireDate; //from database

$today_time = strtotime($today);
$expire_time = strtotime($expire);

if ($expire_time < $today_time) { /* do Something */ }

Wenn Sie PHP 5 >= 5.2.0 verwenden, können Sie die DateTime-Klasse verwenden:

$today_dt = new DateTime($today);
$expire_dt = new DateTime($expire);

if ($expire_dt < $today_dt) { /* Do something */ }

Oder etwas in diese Richtung.

  • Wenn ich mich richtig erinnere, die Sorge um 1st of January of 1970 gilt nur für alte PHP-Versionen, auf denen ausgeführt wird Windows und es war nie ein Problem unter Unix.

    – Alvaro González

    25. Januar 2016 um 12:49 Uhr

  • Wäre es jetzt nicht “Wenn alle Ihre Daten nach dem 1. Januar 1970 liegen” und “vor 2038”? Sehen Sie sich unsere für den y2k38-Bug an. strtotime gibt bei größeren Datumsangaben false zurück. stackoverflow.com/questions/2012589/…

    – blabla

    22. Januar 2018 um 21:23 Uhr


  • Notiere dass der DateTime Methode ist die bevorzugte Methode. Dieses Objekt kann weit mehr als strtotime jemals konnte.

    – Machatität

    1. August 2018 um 15:12 Uhr

  • new DateTime('now') funktioniert auch, um das heutige Datum abzurufen

    – Breith

    27. April 2020 um 13:33 Uhr

  • @Breith Einfach verwenden new DateTime(), was dasselbe ist. Außerdem kann der Konstruktor im Fall einer fehlerhaften Benutzereingabe eine Ausnahme auslösen, stellen Sie also sicher, dass dies behandelt wird.

    – mbomb007

    25. Mai 2021 um 16:34 Uhr


in der Datenbank sieht das Datum so aus: 2011-10-2

Speichern Sie es in JJJJ-MM-TT und dann funktioniert der Zeichenfolgenvergleich, da ‘1’ > ‘0’ usw.

  • aber was ist, wenn sie so aussehen, 2011-10-02 und 2012-02-10, für Monatsvergleich 1 > 0, aber 2011-10-02 < 2012-02-10

    – dav

    22. Februar 2013 um 23:26 Uhr

  • @Davo, der Vergleich stoppt beim ersten Zeichen, das anders ist. In diesem Fall ist die vierte Ziffer von ‘1’ < '2', sodass Sie das erwartete Ergebnis erhalten.

    – Matthew

    23. Februar 2013 um 2:25 Uhr

  • wird folgendes funktionieren 2016-03-27 11:59:47 ::: 2016-03-14 10:30:00?

    – shorif2000

    29. März 2016 um 11:01 Uhr

Wie kann ich zwei Daten in PHP vergleichen
d.raev

Nur um die bereits gegebenen Antworten zu ergänzen, siehe das folgende Beispiel:

$today = new DateTime('');
$expireDate = new DateTime($row->expireDate); //from database



if($today->format("Y-m-d") < $expireDate->format("Y-m-d")) { 
    //do something; 
}

Aktualisieren:
Oder verwenden Sie einfach die alte Schule Datum() Funktion:

if(date('Y-m-d') < date('Y-m-d', strtotime($expire_date))){
    //echo not yet expired! 
}   

  • Date ist eine Funktion, keine Klasse/Konstruktor.

    – spdionis

    6. April 2015 um 12:01 Uhr

  • @spdionis danke für den Kommentar, ich habe den Großbuchstaben geändert, um mögliche Verwirrung zu beseitigen.

    – d.raev

    25. Januar 2016 um 12:46 Uhr

Wie kann ich zwei Daten in PHP vergleichen
Dr.Molle

Ich würde das nicht mit PHP machen. Eine Datenbank sollte wissen, welcher Tag heute ist (verwenden Sie zum Beispiel MySQL->NOW()), so dass es sehr einfach ist, innerhalb der Abfrage zu vergleichen und das Ergebnis ohne Probleme in Abhängigkeit von den verwendeten Datumstypen zurückzugeben

SELECT IF(expireDate < NOW(),TRUE,FALSE) as isExpired FROM tableName

1646945047 717 Wie kann ich zwei Daten in PHP vergleichen
Atif Mahmud

$today = date('Y-m-d');//Y-m-d H:i:s
$expireDate = new DateTime($row->expireDate);// From db 
$date1=date_create($today);
$date2=date_create($expireDate->format('Y-m-d'));
$diff=date_diff($date1,$date2);

//echo $timeDiff;
if($diff->days >= 30){
    echo "Expired.";
}else{
    echo "Not expired.";
}

Hier erfahren Sie, wie Sie die erhalten Unterschied zwischen zwei Daten in Minuten.

// set dates
$date_compare1= date("d-m-Y h:i:s a", strtotime($date1));
// date now
$date_compare2= date("d-m-Y h:i:s a", strtotime($date2));

// calculate the difference
$difference = strtotime($date_compare1) - strtotime($date_compare2);
$difference_in_minutes = $difference / 60;

echo $difference_in_minutes;

1646945047 822 Wie kann ich zwei Daten in PHP vergleichen
Dharman

Sie können die Daten in UNIX-Zeitstempel umwandeln und die Differenz zwischen ihnen in Sekunden vergleichen.

$today_date=date("Y-m-d");
$entered_date=$_POST['date'];
$dateTimestamp1 = strtotime($today_date);
$dateTimestamp2 = strtotime($entered_date);
$diff= $dateTimestamp1-$dateTimestamp2;
//echo $diff;
if ($diff<=0)
   {
     echo "Enter a valid date";
   }

988950cookie-checkWie kann ich zwei Daten in PHP vergleichen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy