Как добавить дни к дате в PHP

  1. add метод DateTime() для добавления дней в PHP
  2. date_add() для добавления дней в PHP

Манипулирование строкой date в PHP может осуществляться различными способами, может добавлять или вычитать часы, месяцы, годы и т.д. PHP предоставляет различные функции, такие как DateTime, date_add и комбинацию strtotime() и date().

add метод DateTime() для добавления дней в PHP

Используя PHP версии 5.3 и выше, объект DateTime и его метод add также могут быть решением. DateTime поддерживает больше форматов дат, чем strtotime и date. Использование объекта также проще, чем произвольные функции. Например, при сравнении двух дат, это напрямую связано с DateTime, но в strtotime необходимо преобразовать дату первой в метку времени.

Пример:

<?php
$oldDate = "2020-02-27";
$newDate = new DateTime($oldDate);
$newDate->add(new DateInterval('P1D')); // P1D means a period of 1 day
$fomattedDate = $date->format('Y-m-d');
?>

Выводится следующий код:

echo $fomattedDate; //output: 2020-02-28

Сложная часть использования DateTime() - это объект DateInterval. При этом принимается спецификация допустимого интервала. Правильный формат начинается с буквы P, что означает period, за которым следует целое значение, затем D для дня. Если длительность - это время, то последнее портирование должно быть T.

Комбинация strtotime() и date() для добавления дней в PHP

Функция strtotime() является PHP-функцией, которая используется для преобразования английского текстового описания даты в UNIX метку времени. Функция strtotime будет принимать строковое значение, которое представляет собой дату-время.

Пример:

<?php
$oldDate   = "2020-02-27";
$date1 = date("Y-m-d", strtotime($oldDate.'+ 1 days'));
$date2 = date("Y-m-d", strtotime($oldDate.'+ 2 days'));
?>

Будет выведен следующий код:

echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29

В приведенном выше примере будет принята строка даты с правильным форматом и возвращена новая дата с использованием strtotime и +1 days. Функция date() дала правильный формат.

Примечание: Во избежание неясности рекомендуется использовать формат ISO 8601 (YYYY-MM-DD).

date_add() для добавления дней в PHP

Этот подход является самым простым среди других - добавить дни, месяцы, годы, часы, минуты и секунды.

Пример:

$oldDate = date_create("2020-02-27"); 
date_add($oldDate, date_interval_create_from_date_string("1 day"));

В применении:

echo date_format($date,"Y-m-d"); //output: 2020-02-28

В приведенном выше примере также добавляются даты в строку даты, date_create()создает объект DateTime. date_interval_create_from_date_string() устанавливает DateInterval из частей строки. Затем, наконец, date_add() увеличивает значение даты.

comments powered by Disqus