English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Учебник по PHP (начальный)

Учебник по PHP (расширенный)

PHP и MySQL

Руководство по PHP

Примеры использования и примеры функции date_diff() в PHP

Руководство по функциям даты и времени PHP

Функция date_diff() возвращает разницу между двумя объектами DateTime.

Определение и использование

Функция date_diff() является синонимом DateTime::diff. Она принимает два объекта DateTime в качестве параметров и вычисляет разницу между ними.

Синтаксис

date_diff($datetime1, $datetime2[, $absolute])

Параметр

НомерПараметры и описание
1

datetime1(обязательный)

Это объект DateTime, который представляет одну из сравниваемых дат.

2

$datetime2 (обязательный)

Это объект DateTime, который представляет одну из сравниваемых дат.

3

$absolute (дополнительный)

булево значение, которое указывает, должно ли значение интервала быть положительным

возвратное значение

Функция date_diff() в PHP возвращает объект DateInterval, который указывает на разницу между двумя заданными датами. Если функция не удается, она возвращаетfalse.

Версия PHP

Эта функция была最初 введена в PHP версии 5.3.0 и может быть использована во всех более поздних версиях.

Онлайн пример

Следующие примеры демонстрируютdate_diff()Использование функции -

<?php
   //Создание объекта DateTime
   $date1 = date_create("25-09-1989");
   $date2 = date_create("1-09-2012");
   $interval = date_diff($date1, $date2);
   print($interval->format('%Y years %d days'));
?>
Проверить, посмотрим‹/›

Результат вывода

22 years 7 days

Онлайн пример

Следующий пример показывает, как вычислить разницу между заданной датой и текущей датой

<?php
   $date1 = date_create("25-09-1989");
   $date2 = date_create();
   $interval = date_diff($date1, $date2);
   print($interval->format('%Y года %d дней'));  
?>
Проверить, посмотрим‹/›

Результат вывода

30 лет 14 дней

Онлайн пример

Рассчитать разницу между двумя датами:

<?php
   //Создание объекта DateTime
   $date1 = date_create("2012-05-09");
   $date2 = date_create("2014-01-09");
   $interval = date_diff($date1, $date2);
   print($interval->format('%Y года %m месяц %d дней'));
   print("\n");
   $date3 = date_create("1989-08-25");
   $date4 = date_create("2012-03-19");
   $interval = date_diff($date3, $date4);
   print($interval->format('%Y года %m месяц %d дней'));
   print("\n");
   $date5 = date_create("2002-11-16");
   $date6 = date_create("2014-12-23");
   $interval = date_diff($date5, $date6);
   print($interval->format('%Y года %m месяц %d дней'));
   print("\n");
   $date7 = date_create("1989-0-09");
   $date8 = date_create("2013-05-14");
   $interval = date_diff($date7, $date8);
   print($interval->format('%Y года %m месяц %d дней'));
?>
Проверить, посмотрим‹/›

Результат вывода

01 года 8 месяц 0 дней
22 года 6 месяц 23 дня
12 года 1 месяц 7 дней
24 года 5 мая 5 дней