Базовый синтаксис
Синтаксис использования date_sub() функция приведена ниже:
date_sub ( ДатаВремя $объект , ДатаИнтервал $интервал )Здесь, $объект это ДатаВремя объект, из которого вы хотите вычесть интервал, и $интервал это ДатаИнтервал объект, который указывает интервал, который вы хотите вычесть. Обратите внимание, что оба аргумента необходимы для использования date_sub() функционировать правильно.
Работа с интервалом даты
Чтобы использовать date_sub() функцию, вам нужно создать ДатаИнтервал объект, который указывает количество времени, которое вы хотите вычесть из исходной даты и времени. ДатаИнтервал объекты можно создавать с помощью ДатаИнтервал конструктор. Конструктор принимает строковый параметр, указывающий интервал в таком формате, как P1D (один день), P1M (один месяц), P1Y (один год) и P1DT1H (один день и один час).
Примеры
// Вычесть один день$интервал '=' новый ДатаИнтервал ( «P1D» ) ; // Вычесть один месяц
$интервал '=' новый ДатаИнтервал ( «П1М» ) ;
// Вычесть один год
$интервал '=' новый ДатаИнтервал ( 'P1Y' ) ;
Как использовать функцию PHP date_sub()
Как только у вас есть ДатаИнтервал объект, вы можете комбинировать его с ДатаВремя объект для вычисления новой даты и времени. Вот пример, который вычитает один день из текущей даты:
$datetime '=' новый ДатаВремя ( ) ;
$интервал '=' новый ДатаИнтервал ( «P1D» ) ;
date_sub ( $datetime , $интервал ) ;
эхо $datetime -> формат ( 'Г-м-д H:i:s' ) ;
?>
Как видите, новая дата и время на один день раньше текущей даты.
Также можно вычесть часы, минуты и секунды из объекта DateTime, используя функцию date_sub() функция. Чтобы вычесть часы, вы можете передать интервал дат как PT1H, что означает вычитание одного часа. Например, рассмотрим следующий код:
$datetime '=' новый ДатаВремя ( '2023-05-16 14:43:00' ) ;
date_sub ( $datetime , новый ДатаИнтервал ( «PT1H» ) ) ;
эхо $datetime -> формат ( 'Г-м-д H:i:s' ) ;
?>
Это вычитает один час из объекта DateTime и обновляет объект новым значением. Вы можете получить доступ к новому значению с помощью формат() функция объекта DateTime.
Пример 1: вычитание разных интервалов
date_sub() Функция позволяет вычитать различные интервалы, а не только дни. Давайте рассмотрим сценарий, в котором мы хотим вычесть 2 часа и 30 минут из заданной даты и времени.
$дата '=' новый ДатаВремя ( '2023-11-02 10:32:45' ) ;
$интервал '=' новый ДатаИнтервал ( 'ПТ1Х15М' ) ;
date_sub ( $дата , $интервал ) ;
эхо $дата -> формат ( 'Г-м-д H:i:s' ) ;
?>
В этом примере мы создаем объект DateTime, представляющий дату и время. «2023-11-02 10:32:45» . Мы также создаем ДатаИнтервал объект, представляющий период в 1 час 15 минут в формате «PT1H15M». Затем мы используем date_sub() функция вычитания интервала из даты и времени.
Пример 2: вычитание нескольких интервалов
Вы также можете использовать date_sub() функция для вычитания нескольких интервалов из объекта DateTime. Синтаксис прост: просто создайте новый объект DateInterval для каждого интервала, который вы хотите вычесть, и передайте их все в date_sub() функционировать как массив.
$интервалы '=' множество (
новый ДатаИнтервал ( 'P1Y' ) ,
новый ДатаИнтервал ( «П6М» ) ,
новый ДатаИнтервал ( 'P3D' )
) ;
$datetime '=' новый ДатаВремя ( ) ;
для каждого ( $интервалы как $интервал ) {
date_sub ( $datetime , $интервал ) ;
}
эхо $datetime -> формат ( 'Г-м-д H:i:s' ) ;
?>
В этом примере мы вычли из даты один год, шесть месяцев и три дня.
Пример 3: date_sub() с часовыми поясами
Одна вещь, которую вы должны знать при использовании date_sub() функция заключается в том, что это может повлиять на часовой пояс вашего ДатаВремя объект. По умолчанию, ДатаВремя объекты используют часовой пояс вашего сервера. Однако, если вы хотите работать с другим часовым поясом, вы можете установить его явно с помощью установитьЧасовой пояс () метод.
$datetime '=' новый ДатаВремя ( 'сейчас' , новый ДатаЧасовой пояс ( 'Америка/Нью-Йорк' ) ) ;
$интервал '=' новый ДатаИнтервал ( «P1D» ) ;
date_sub ( $datetime , $интервал ) ;
эхо $datetime -> формат ( 'Г-м-д H:i:s' ) ;
?>
В этом примере мы установили часовой пояс America/New_York и вычли один день из даты и времени.
При вычитании интервалов с помощью date_sub() функции, важно отметить, что результирующая дата корректируется автоматически, если она становится недействительной.
Заключение
date_sub() Функция в PHP предоставляет удобный способ вычитания интервалов из объектов DateTime. Используя эту функцию, разработчики могут легко выполнять такие операции, как вычитание дней, часов, минут или сложных интервалов из заданной даты и времени. date_sub() Функция предлагает гибкость и точность в обработке вычислений дат, что делает ее ценным инструментом для работы с датами и временем в PHP-приложениях.