- PHP: Add days to a date.
- Using the DateTime class to add days to a date.
- Adding 30 days to a date.
- Add 7 days to a date using DateTime.
- Adding days to today’s date.
- Other DateInterval examples.
- Using date and strtotime.
- date_modify
- Parameters
- Return Values
- Examples
- See Also
- User Contributed Notes
- Как добавить дни к дате в PHP
- add метод DateTime() для добавления дней в PHP
- Комбинация strtotime() и date() для добавления дней в PHP
- date_add() для добавления дней в PHP
- date_add
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- Как добавить дни к дате в PHP
- add метод DateTime() для добавления дней в PHP
- Комбинация strtotime() и date() для добавления дней в PHP
- date_add() для добавления дней в PHP
PHP: Add days to a date.
This is a short tutorial on how to add days to a given date using PHP. To do this, we can either use a combination of date and strtotime or we can take the OO approach and use the DateTime class.
Using the DateTime class to add days to a date.
Let’s start off by looking at a few examples using the DateTime class.
Adding 30 days to a date.
In the following example, I will add 30 days to a given date:
//Using PHP's DateTime object to add 30 days //to a given date. $date = new DateTime('2019-06-10'); //Create a new DateInterval object using P30D. $interval = new DateInterval('P30D'); //Add the DateInterval object to our DateTime object. $date->add($interval); //Print out the result. echo $date->format("Y-m-d");
- We created a new DateTime object and passed in the date that we want to add days onto. In this case, I used the 10th of June, 2019. i.e. We want to add 30 days onto the 10th of June, 2019.
- We then created a DateInterval object and set the $interval_spec parameter in the constructor to P30D. P30D stands for “a period of 30 days.”
- Afterwards, we added this DateInterval to our DateTime object using the add function.
- Finally, we printed out the result using the DateTime::format function.
Add 7 days to a date using DateTime.
The PHP snippet above can be easily modified to add 7 days instead of 30. The only thing that needs changing is the line where we instantiated the DateInterval class:
//DateInterval object using 7 days / P7D. $interval = new DateInterval('P7D');
Adding days to today’s date.
If you want to add days to today’s date, then you can simply omit the parameter in the constructor:
//Create a DateTime object w/ no constructor. $date = new DateTime();
The DateTime object above will default to the current timestamp.
Other DateInterval examples.
Here are a few other interval specifications that can be used with the DateInterval class:
- P1Y: Adds a period of one year.
- P5D: Adds a period of 5 days.
- P1D: Adds a period 1 day.
- P6M: Adds a period of 6 months.
- P4W: Adds a period of 4 weeks.
As of PHP version 7.1, you can even add microseconds onto a timestamp.
Using date and strtotime.
If you feel more comfortable using the date and strtotime functions, then you can use the following example:
//Using PHP's date and strtotime functions to get //the date 30 days from now. $thirtyDays = date("Y-m-d", strtotime("+30 days")); //Print out the result. echo $thirtyDays;
In the code above, we added 30 days onto the current date.
However, if you are wanting to add days to a given date, then you will need to modify your approach a little:
//Adding +30 days to a given date. $date = '2019-06-10'; $thirtyDaysUnix = strtotime('+30 days', strtotime($date)); echo date("d M Y", $thirtyDaysUnix);
As you can see, the strtotime function is actually pretty useful in the sense that you can almost write exactly what you want in plain English into the first parameter. For example, you can also tell it to add one month:
//+1 month $nextMonth = date("d M Y", strtotime("+1 month")); echo $nextMonth;
Hopefully, you found this guide useful!
date_modify
Alter the timestamp of a DateTime object by incrementing or decrementing in a format accepted by DateTimeImmutable::__construct() .
Parameters
Procedural style only: A DateTime object returned by date_create() . The function modifies this object.
A date/time string. Valid formats are explained in Date and Time Formats.
Return Values
Returns the modified DateTime object for method chaining or false on failure.
Examples
Example #1 DateTime::modify() example
$date = new DateTime ( ‘2006-12-12’ );
$date -> modify ( ‘+1 day’ );
echo $date -> format ( ‘Y-m-d’ );
?>?php
$date = date_create ( ‘2006-12-12’ );
date_modify ( $date , ‘+1 day’ );
echo date_format ( $date , ‘Y-m-d’ );
?>?php
The above examples will output:
Example #2 Beware when adding or subtracting months
$date -> modify ( ‘+1 month’ );
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;
$date -> modify ( ‘+1 month’ );
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;
?>
The above example will output:
See Also
- strtotime() — Parse about any English textual datetime description into a Unix timestamp
- DateTimeImmutable::modify() — Creates a new object with modified timestamp
- DateTime::add() — Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
- DateTime::sub() — Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
- DateTime::setDate() — Sets the date
- DateTime::setISODate() — Sets the ISO date
- DateTime::setTime() — Sets the time
- DateTime::setTimestamp() — Sets the date and time based on an Unix timestamp
User Contributed Notes
Как добавить дни к дате в PHP
- add метод DateTime() для добавления дней в PHP
- 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() увеличивает значение даты.
Copyright © 2023. All right reserved
date_add
Прибавляет заданный объект DateInterval к объекту DateTime.
Список параметров
Только для процедурного стиля: Объект DateTime, возвращаемый date_create() . Функция изменяет этот объект.
Возвращаемые значения
Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.
Примеры
Пример #1 Пример использования DateTime::add()
$date = new DateTime ( ‘2000-01-01’ );
$date -> add (new DateInterval ( ‘P10D’ ));
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;
?>?php
$date = date_create ( ‘2000-01-01’ );
date_add ( $date , date_interval_create_from_date_string ( ’10 days’ ));
echo date_format ( $date , ‘Y-m-d’ );
?>?php
Результат выполнения данных примеров:
Пример #2 Другие примеры с DateTime::add()
$date = new DateTime ( ‘2000-01-01’ );
$date -> add (new DateInterval ( ‘PT10H30S’ ));
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;
?php
$date = new DateTime ( ‘2000-01-01’ );
$date -> add (new DateInterval ( ‘P7Y5M4DT4H3M2S’ ));
echo $date -> format ( ‘Y-m-d H:i:s’ ) . «\n» ;
?>
Результат выполнения данного примера:
2000-01-01 10:00:30 2007-06-05 04:03:02
Пример #3 Будьте внимательны при добавлении месяцев
$date = new DateTime ( ‘2000-12-31’ );
$interval = new DateInterval ( ‘P1M’ );
?php
$date -> add ( $interval );
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;
$date -> add ( $interval );
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;
?>
Результат выполнения данного примера:
Примечания
При работе с PHP 5.2 в качестве альтернативы можно воспользоваться функцией DateTime::modify() .
Смотрите также
- DateTime::sub() — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
- DateTime::diff() — Возвращает разницу между двумя DateTime объектами
- DateTime::modify() — Изменение временной метки
Как добавить дни к дате в PHP
- add метод DateTime() для добавления дней в PHP
- 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() увеличивает значение даты.
Copyright © 2023. All right reserved