PHP сравнение дат


Метод 1:

Если указанные даты имеют одинаковый формат, то используйте простой оператор сравнения для сравнения дат.

Пример:

<?php 
// PHP program to compare dates 
  
// Declare two dates and  
// initialize it 
$date1 = "1998-11-24"; 
$date2 = "1997-03-26"; 
  
// Use comparison operator to  
// compare dates 
if ($date1 > $date2) 
    echo "$date1 is latest than $date2"; 
else
    echo "$date1 is older than $date2"; 
  
?> 

Вывод: 1998-11-24 is latest than 1997-03-26

Метод 2:

Если обе заданные даты представлены в разных форматах, то используйте функцию strtotime() для преобразования заданных дат в соответствующий формат временных меток и, наконец, сравните эти числовые временные метки, чтобы получить желаемый результат.

Пример:

<?php 
// PHP program to compare dates 
  
// Declare two dates in different 
// format 
$date1 = "12-03-26"; 
$date2 = "2011-10-24"; 
  
// Use strtotime() function to convert 
// date into dateTimestamp 
$dateTimestamp1 = strtotime($date1); 
$dateTimestamp2 = strtotime($date2); 
  
// Compare the timestamp date  
if ($dateTimestamp1 > $dateTimestamp2) 
    echo "$date1 is latest than $date2"; 
else
    echo "$date1 is older than $date2"; 
  
?> 

Вывод: 12-03-26 is latest than 2011-10-24

Метод 3: Использование класса DateTime для сравнения двух дат.

Пример:

<?php 
// PHP program to compare dates 
  
// Declare two dates in different 
// format and use DateTime() function 
// to convert date into DateTime 
$date1 = new DateTime("12-11-24"); 
$date2 = new DateTime("2011-03-26"); 
  
// Compare the dates 
if ($date1 > $date2) 
    echo $date1->format("Y-m-d") . " is latest than "
            . $date2->format("Y-m-d"); 
else
    echo $date1->format("Y-m-d") . " is older than " 
            . $date2->format("Y-m-d"); 
  
?> 

Вывод: 2012-11-24 is latest than 2011-03-26


$right_now = date("Y-m-d H:i:s");
//Это вернет текущие 
//дату и время в указанном формате
echo "<p>" . $right_now . "</p>";

Функция mktime() требует, чтобы дата и время были переданы ей в виде отдельных сегментов (часы, минуты, секунды, месяц, день, год):

$timestamp1 = mktime(16, 00, 15, 1, 5, 2016);
//Возвращает: 2016-01-05 16:00:15
echo "<p>" . date( 'Y-m-d H:i:s' , $timestamp1) . "</p>";

Сравнение дат с использованием DateTime

Класс DateTime является предпочтительным способом работы с датами и временем в PHP. Для сравнения двух дат, вам нужно создать два объекта DateTime и использовать методы сравнения.

<?php
$date1 = new DateTime('2021-01-01');
$date2 = new DateTime('2021-12-31');

if ($date1 == $date2) {
    echo "Даты равны.";
} elseif ($date1 < $date2) {
    echo "Первая дата меньше второй.";
} else {
    echo "Первая дата больше второй.";
}
?>

Сравнение дат с использованием функции strtotime()

Функция strtotime() преобразует строку с датой в метку времени Unix. Это позволяет сравнивать даты как числа.

<?php
$date1 = strtotime('2021-01-01');
$date2 = strtotime('2021-12-31');

if ($date1 == $date2) {
    echo "Даты равны.";
} elseif ($date1 < $date2) {
    echo "Первая дата меньше второй.";
} else {
    echo "Первая дата больше второй.";
}
?>

Вывод создания файла $filedata = date ("d.m.y", filemtime($filename));

Img