Как использовать функцию date_sub() в PHP

Kak Ispol Zovat Funkciu Date Sub V Php



date_sub() является функцией ДатаВремя класс, который является частью расширения даты и времени PHP. Он используется для вычитания указанного интервала из заданной даты. Его можно использовать для расчета будущей даты путем вычитания одного или нескольких дней, месяцев или лет из текущей даты. date_sub() функция возвращает новый ДатаВремя объект, представляющий дату и время после выполнения расчета.

Базовый синтаксис

Синтаксис использования 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-приложениях.