Porównaj daty w PHP

Porównaj daty w PHP

Wartości daty należy porównać w PHP do różnych celów, takich jak obliczenie terminu zadania i planowanie zdarzenia. Łatwiej jest porównać dwie daty podobnego formatu. Jeśli jest to wymagane do porównania daty różnych formatów, wówczas wartości daty będą wymagane do konwersji na ten sam format przy użyciu innych wbudowanych funkcji PHP przed porównanie. W tym samouczku pokazano różne sposoby porównywania wartości daty w PHP.

Porównaj daty podobnego formatu

Wartości daty są przechowywane jako ciągi w PHP w „ROYYY-MM-DD”Format. Jeśli wartość tej daty nie zostanie przypisana w tym formacie, wówczas wygenerowane zostanie niewłaściwe wyjście. W tym samouczku pokazano sposób porównywania dwóch dat podobnego formatu.

Przykład 1: Porównaj wartości daty za pomocą instrukcji warunkowej

Utwórz plik PHP z następującym skryptem, który odczytuje dwie wartości daty w formacie PHP z parametrów URL. Następnie wydrukuj wiadomość po porównaniu wartości daty za pomocą instrukcji warunkowej i operatora porównawczego.

// Sprawdź, czy wartości daty są przekazywane w parametrze URL, czy nie
if (isset ($ _ get ['d1']) i isset ($ _ get ['d2']))))

// Ustaw pierwszą wartość daty jako ciąg
$ dateval1 = $ _get ['d1'];
// Ustaw wartość drugiej daty jako ciąg
$ dateval2 = $ _get ['d2'];
// Sprawdź, czy wartości nie są puste, czy nie
if ($ dateval1 != "" i $ dateval2 != "")

// Porównaj daty za pomocą operatora porównawczego
if ($ dateval1 < $dateVal2)
echo "$ dateval1 jest mniej niż $ dateval2.";
w przeciwnym razie
echo "$ dateval1 jest większy niż $ dateval2.";

w przeciwnym razie
// Wydrukuj komunikat o błędzie
echo "Jedna lub dwie wartości daty są puste.";

w przeciwnym razie
// Wydrukuj komunikat o błędzie
echo „brakuje jednej lub więcej wartości daty.";
?>

Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego skryptu, jeśli nie zostanie przekazana wartość daty jako parametr URL:

Po wykonaniu poprzedniego skryptu pojawi się następujące dane wyjściowe, jeśli „2022-09-21 i 2022-01-22” zostaną przekazane w parametrze URL:

Po wykonaniu poprzedniego skryptu pojawi się następujące dane wyjściowe, jeśli 2022-09-21 i 2022-11-22 ”zostaną przekazane w parametrze URL.

Przykład 2: Porównaj wartości daty za pomocą operatora trójskładnikowego

Utwórz plik PHP z następującym skryptem, który odczytuje dwie wartości daty w formacie PHP z parametrów URL. Następnie wydrukuj wiadomość po porównaniu wartości daty za pomocą operatora trójskładnikowego.

// Sprawdź, czy wartości daty są przekazywane w parametrze URL, czy nie
if (isset ($ _ get ['d1']) i isset ($ _ get ['d2']))))

// Ustaw pierwszą wartość daty jako ciąg
$ dateval1 = $ _get ['d1'];
// Ustaw wartość drugiej daty jako ciąg
$ dateval2 = $ _get ['d2'];
// Sprawdź, czy wartości nie są puste, czy nie
if ($ dateval1 != "" i $ dateval2 != "")
// Porównaj wartości daty
Echo $ dateval1 < $dateVal2 ? "$dateVal1 is less than $dateVal2." : "$dateVal1 is greater than $dateVal2.";
w przeciwnym razie
// Wydrukuj komunikat o błędzie
echo "Jedna lub dwie wartości daty są puste.";

w przeciwnym razie
// Wydrukuj komunikat o błędzie
echo „brakuje jednej lub więcej wartości daty.";
?>

Po wykonaniu poprzedniego skryptu pojawi się następujące dane wyjściowe, jeśli „2022-08-25 i 2022-11-22” zostaną przekazane w parametrze URL:

Porównaj obiekty daty podobnych lub różnych formatów

W tej części samouczka pokazano sposób porównywania obiektów daty tych samych lub różnych formatów.

Przykład 3: Porównaj obiekty daty o podobnym formacie

Utwórz plik PHP z następującym skryptem, aby utworzyć dwa obiekty daty podobnych formatów za pomocą Datetime klasa. Następnie do porównania dat zastosowano instrukcję warunkową.

// Przypisz obiekt pierwszej randki
$ dateval1 = new DateTime („21 maja 2022”);
// Przypisz obiekt drugiej daty
$ dateval2 = nowy datETime („16 grudnia 2022”);
// Porównaj wartości daty za pomocą operatora porównawczego
if ($ DATAVAL1> $ DATAVAL2)
echo date_format ($ dateval1, „d-m-y”), „jest większy niż”, date_format ($ dateval2, „d-m-y”), ”.";
w przeciwnym razie
echo date_format ($ dateval1, „d-m-y”), „jest mniej niż”, date_format ($ dateval2, „d-m-y”), ”.";
?>

Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego skryptu:

Przykład 4: Porównaj obiekty daty różnych formatów

Utwórz plik PHP z następującym skryptem, aby utworzyć dwa obiekty daty różnych formatów za pomocą Datetime klasa. Następnie do porównania dat zastosowano instrukcję warunkową.

// Sprawdź datę zdarzenia jest ustawiona lub nie
if (isset ($ _ get ['ed']))

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

// Przeczytaj bieżącą datę
$ dziś = new DateTime ();
// Przeczytaj datę zdarzenia z parametru URL
$ eventDate = new DateTime ($ _ get ['ed']);
// Oblicz różnicę między datami
$ różnica = $ dziś-> diff ($ eventDate);
/*
Liczba dodatnich zostanie zwrócona
Jeśli data zdarzenia jest większa niż bieżąca data
*/
if ($ różnica-> format („%r%a”)> 0)
Echo „Wydarzenie jest w”, $ różnica-> dni, „dni.";
w przeciwnym razie
echo „Wydarzenie zostało zorganizowane przed”, $ różnica-> dni, „dni.";

w przeciwnym razie
// Wydrukuj komunikat o błędzie
echo „Data zdarzenia jest pusta.";

w przeciwnym razie
// Wydrukuj komunikat o błędzie
echo „Brakuje daty zdarzenia.";
?>

Po wykonaniu poprzedniego skryptu pojawi się następujące dane wyjściowe, jeśli nie zostanie przekazana wartość daty jako parametr URL:

Po wykonaniu poprzedniego skryptu pojawi się następujące dane wyjściowe, jeśli „2022-10-15” zostanie przekazane w parametrze URL:

Po wykonaniu poprzedniego skryptu pojawi się następujące dane wyjściowe, jeśli „2022-01-15” zostanie przekazane w parametrze URL:

Przykład 5: Porównaj obiekty daty różnych formatów za pomocą funkcji date_create ()

Utwórz plik PHP z następującym skryptem, aby utworzyć dwa obiekty daty różnych formatów za pomocą date_create () funkcjonować. Następnie do porównania dat zastosowano instrukcję warunkową.

// Przypisz pierwszą datę za pomocą funkcji date_create ()
$ dateval1 = date_create („30-10-2022”);
// Przypisz drugą datę za pomocą funkcji date_create ()
$ dateval2 = date_create („16 grudnia 2022”);
// Porównaj wartości daty innego formatu
if ($ DATAVAL1> $ DATAVAL2)
echo $ dateval1-> format („d m y”), „jest większy niż”, $ dateval2-> format („d m y”), ”.";
w przeciwnym razie
echo $ dateval1-> format („d m y”), „jest mniejszy niż”, $ dateval2-> format („d m y”), ”.";
?>

Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego skryptu.

Porównaj wartości daty na podstawie wartości znaczników czasu

Sposób porównywania wartości daty opartych na wartościach znaczników czasu pokazano w poniższym przykładzie:

Przykład 6: Porównaj daty za pomocą funkcji strtotime ()

Utwórz plik PHP z następującym skryptem, który porównuje dwie wartości daty, przekształcając daty w wartości znacznika czasu:

// Zdefiniuj dwie wartości daty ciągu
$ dateval1 = "2022-01-01";
$ dateval2 = "2022-06-30";
// Porównaj wartości czasowe dat
if (strtotime ($ dateval1) < strtotime($dateVal2))
echo "$ dateval1 jest mniej niż $ dateval2.";
w przeciwnym razie
echo "$ dateval1 jest większy niż $ dateval2.";
?>

Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego skryptu:

Wniosek

W tym samouczku pokazano różne sposoby porównywania dwóch wartości daty podobnych lub różnych formatów. Użytkownicy PHP mogą przestrzegać dowolnej metody porównywania wartości daty na podstawie ich wymagań.