Sammenlign datoer i PHP

Sammenlign datoer i PHP

Datoverdier må sammenlignes i PHP for forskjellige formål, for eksempel å beregne fristen for en oppgave og planlegge en hendelse. Det er lettere å sammenligne to datoer med lignende format. Hvis det kreves å sammenligne datoen for forskjellige formater, vil datoverdiene kreves for å konvertere til samme format ved å bruke andre innebygde PHP-funksjoner før sammenligning. Ulike måter å sammenligne datoverdier i PHP har blitt vist i denne opplæringen.

Sammenlign datoer for lignende format

Datoverdiene lagres som strenger i PHP i "yyyy-mm-dd”Format. Hvis denne datoverdien ikke er tilordnet i dette formatet, vil feil utgang genereres. Måten å sammenligne to datoer med et lignende format er vist i denne opplæringen.

Eksempel 1: Sammenlign datoverdier ved å bruke en betinget uttalelse

Opprett en PHP -fil med følgende skript som vil lese to datoverdier i PHP -formatet fra URL -parametrene. Skriv deretter ut meldingen etter å ha sammenlignet datoverdiene ved hjelp av en betinget uttalelse og sammenligningsoperatør.

// Sjekk om datoverdiene sendes i URL -parameteren eller ikke
if (isset ($ _ få ['d1']) og isset ($ _ get ['d2']))

// Angi den første datoverdien som en streng
$ Dateval1 = $ _Get ['D1'];
// Angi den andre datoverdien som en streng
$ dataVal2 = $ _Get ['d2'];
// sjekk om verdiene er ikke-tomme eller ikke
if ($ dataVal1 != "" og $ dataVal2 != "")

// Sammenlign datoene ved å bruke sammenligningsoperatør
if ($ dataVal1 < $dateVal2)
Echo "$ Dateval1 er mindre enn $ Dateval2.";
ellers
Echo "$ Dateval1 er større enn $ Dateval2.";

ellers
// Skriv ut feilmelding
ekko "En eller to datoverdier er tomme.";

ellers
// Skriv ut feilmelding
ekko "En eller flere datoverdier mangler.";
?>

Følgende utdata vises etter å ha utført det forrige skriptet hvis ingen datoverdi sendes som en URL -parameter:

Etter å ha utført det forrige skriptet, vil følgende utgang vises hvis “2022-09-21 og 2022-01-22” sendes i URL-parameteren:

Etter å ha utført det forrige skriptet, vises følgende utdata hvis 2022-09-21 og 2022-11-22 ”sendes i URL-parameteren.

Eksempel 2: Sammenlign datoverdier ved å bruke den ternære operatøren

Opprett en PHP -fil med følgende skript som vil lese to datoverdier i PHP -formatet fra URL -parametrene. Skriv deretter ut meldingen etter å ha sammenlignet datoverdiene ved hjelp av den ternære operatøren.

// Sjekk om datoverdiene sendes i URL -parameteren eller ikke
if (isset ($ _ få ['d1']) og isset ($ _ get ['d2']))

// Angi den første datoverdien som en streng
$ Dateval1 = $ _Get ['D1'];
// Angi den andre datoverdien som en streng
$ dataVal2 = $ _Get ['d2'];
// sjekk verdiene ikke er tomme eller ikke
if ($ dataVal1 != "" og $ dataVal2 != "")
// Sammenlign datoverdiene
Echo $ Dateval1 < $dateVal2 ? "$dateVal1 is less than $dateVal2." : "$dateVal1 is greater than $dateVal2.";
ellers
// Skriv ut feilmelding
ekko "En eller to datoverdier er tomme.";

ellers
// Skriv ut feilmelding
ekko "En eller flere datoverdier mangler.";
?>

Etter å ha utført det forrige skriptet, vil følgende utgang vises hvis “2022-08-25 og 2022-11-22” sendes i URL-parameteren:

Sammenlign datoobjekter med lignende eller forskjellige formater

Måten å sammenligne datoobjekter til de samme eller forskjellige formatene er vist i denne delen av opplæringen.

Eksempel 3: Sammenlign datoobjekter i lignende format

Opprett en PHP -fil med følgende skript for å lage to datoobjekter med lignende formater ved å bruke Dato tid klasse. Deretter ble den betingede uttalelsen brukt til å sammenligne datoene.

// tilordne det første dateobjektet
$ DATEVAL1 = NY DATETIME ("21. mai 2022");
// tilordne det andre datoobjektet
$ DATEVAL2 = NY DATETIME ("16. desember 2022");
// Sammenlign datoverdiene ved å bruke sammenligningsoperatøren
if ($ dataVal1> $ dataVal2)
ECHO DATE_FORMAT ($ DATEVAL1, "D-M-Y"), "er større enn", Date_Format ($ Dateval2, "D-M-Y"), ".";
ellers
ECHO DATE_FORMAT ($ DATEVAL1, "D-M-Y"), "er mindre enn", Date_Format ($ Dateval2, "D-M-Y"), ".";
?>

Følgende utgang vises etter å ha utført det forrige skriptet:

Eksempel 4: Sammenlign datoobjekter med forskjellige formater

Opprett en PHP -fil med følgende skript for å lage to datoobjekter med forskjellige formater ved å bruke Dato tid klasse. Deretter har den betingede uttalelsen blitt brukt til å sammenligne datoene.

// sjekk hendelsesdato er angitt eller ikke
if (isset ($ _ get ['ed']))

if ($ _ få ['ed'] != "")

// Les gjeldende dato
$ i dag = new DateTime ();
// Les hendelsesdatoen fra URL -parameteren
$ eventDate = new DateTime ($ _ Get ['ed']);
// Beregn forskjellen mellom datoene
$ forskjell = $ i dag-> diff ($ eventDate);
/*
Et positivt antall vil bli returnert
Hvis hendelsesdatoen er større enn gjeldende dato
*/
if ($ forskjell-> format ("%r%a")> 0)
ekko "Arrangementet kommer innen", $ forskjell-> dager, "dager.";
ellers
ekko "Arrangementet ble organisert før", $ forskjell-> dager, "dager.";

ellers
// Skriv ut feilmelding
ekko "Arrangementsdatoen er tom.";

ellers
// Skriv ut feilmelding
ekko "Hendelsesdatoen mangler.";
?>

Etter å ha utført det forrige skriptet, vil følgende utgang vises hvis ingen datoverdi sendes som en URL -parameter:

Etter å ha utført det forrige skriptet, vises følgende utgang hvis “2022-10-15” sendes i URL-parameteren:

Etter å ha utført det forrige skriptet, vil følgende utgang vises hvis “2022-01-15” sendes i URL-parameteren:

Eksempel 5: Sammenlign datoobjekter med forskjellige formater ved å bruke Date_Create () -funksjonen

Opprett en PHP -fil med følgende skript for å lage to datoobjekter med forskjellige formater ved å bruke date_create () funksjon. Deretter har den betingede uttalelsen blitt brukt til å sammenligne datoene.

// Tildel den første datoen ved å bruke Date_Create () -funksjonen
$ dataVal1 = date_create ("30-10-2022");
// tilordne den andre datoen ved å bruke Date_Create () -funksjonen
$ DATEVAL2 = DATE_CREATE ("16. desember 2022");
// Sammenlign datoverdiene i forskjellig format
if ($ dataVal1> $ dataVal2)
Echo $ Dateval1-> Format ("D M Y"), "er større enn", $ Dateval2-> Format ("D M Y"), ".";
ellers
Echo $ Dateval1-> Format ("D M Y"), "er mindre enn", $ Dateval2-> Format ("D M Y"), ".";
?>

Følgende utgang vises etter å ha utført forrige skript.

Sammenlign datoverdier basert på tidsstempelverdiene

Måten å sammenligne datoverdier basert på tidsstempelverdier er vist i følgende eksempel:

Eksempel 6: Sammenlign datoer ved å bruke strTotime () -funksjonen

Opprett en PHP -fil med følgende skript som vil sammenligne to datoverdier ved å konvertere datoene til tidsstempelverdiene:

// definere to datoverdier for strengen
$ DATEVAL1 = "2022-01-01";
$ DATEVAL2 = "2022-06-30";
// Sammenlign tidsstempelverdiene for datoene
if (strtotime ($ dataVal1) < strtotime($dateVal2))
Echo "$ Dateval1 er mindre enn $ Dateval2.";
ellers
Echo "$ Dateval1 er større enn $ Dateval2.";
?>

Følgende utgang vises etter å ha utført det forrige skriptet:

Konklusjon

Ulike måter å sammenligne to datoverdier på lignende eller forskjellige formater har blitt vist i denne opplæringen. PHP -brukere kan følge enhver metode for å sammenligne datoverdier basert på kravene deres.