DateTime::modify
date_modify
(PHP 5 >= 5.2.0, PHP 7)
DateTime::modify -- date_modify — Изменение временной метки
Описание
Объектно-ориентированный стиль
Процедурный стиль
Изменяет метку времени объекта DateTime путем добавления или вычитания времени в формате, принятом для функции strtotime().
Список параметров
-
object
-
Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.
-
modify
-
Строка даты/времени. Объяснение корректных форматов дано в Форматы даты и времени.
Возвращаемые значения
Возвращает объект DateTime для применения в цепи методов или FALSE
в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
5.3.6 | Стало возможным применять абсолютные значения объектов даты/времени. Раньше использовались только относительные значения полей даты/времени. |
5.3.0 | Изменено
значение успешной работы функции с NULL на DateTime. |
Примеры
Пример #1 Пример использования DateTime::modify()
Объектно-ориентированный стиль
<?php
$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');
?>
Результат выполнения данных примеров:
2006-12-13
Пример #2 Будьте осторожны при добавлении и вычитании месяцев
<?php
$date = new DateTime('2000-12-31');
$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>
Результат выполнения данного примера:
2001-01-31 2001-03-03
Смотрите также
- strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
- DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
- DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
- DateTime::setDate() - Установка даты
- DateTime::setISODate() - Установка ISO даты
- DateTime::setTime() - Установка времени
- DateTime::setTimestamp() - Устанавливает дату и время, основываясь на метке времени Unix
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с датой и временем
- Дата и Время
- DateTime::add
- Функция DateTime::__construct() - Конструктор класса DateTime
- Функция DateTime::createFromFormat() - Создает и возвращает экземпляр класса DateTime, соответствующий заданному формату
- Функция DateTime::getLastErrors() - Возвращает предупреждения и ошибки
- Функция DateTime::modify() - Изменение временной метки
- Функция DateTime::__set_state() - Обработчик __set_state
- Функция DateTime::setDate() - Установка даты
- Функция DateTime::setISODate() - Установка ISO даты
- Функция DateTime::setTime() - Установка времени
- Функция DateTime::setTimestamp() - Устанавливает дату и время, основываясь на метке времени Unix
- Функция DateTime::setTimezone() - Установка временной зоны для объекта класса DateTime
- DateTime::sub
Коментарии
You have to be a bit careful with variables here. If for example you want to add a variable amount of minutes you might use `->modify("+$min"). This will not work out if `$min` is a negative number, because modify will see the "+" and ignore the "-". If `$min` equals -10, modify in this example will add ten minutes, not subtract!
What is happening is if the modify string has two operations, the first will be obeyed and later ones will be ignored.
So "+-10 minutes" will add ten minutes, even though you might expect it to add the negative number. Similarly "--10 minutes" will subtract ten minutes, despite the apparent logic of subtracting a negative number.