PHP 8.6.0 Beta 1 is available for testing

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::modify -- date_modifyИзменяет метку времени

Описание

Объектно-ориентированный стиль

public function DateTime::modify(string $modifier): DateTime

Процедурный стиль

function date_modify (DateTime $object, string $modifier): DateTime |false

Метод изменяет метку времени объекта DateTime путём добавления или вычитания времени в формате, который принимает метод DateTimeImmutable::__construct() .

Список параметров

object
Только для процедурного стиля: объект DateTime , который возвращает функция date_create() . Функция изменяет этот объект.
modifier

Строка даты и времени. Объяснение корректных форматов даёт раздел «Форматы даты и времени».

Возвращаемые значения

Метод возвращает новый экземпляр даты и времени DateTime , если выполнился успешно. Процедурный стиль возвращает false , если возникла ошибка.

Ошибки

Только для объектно-ориентированного API-интерфейса: метод выбрасывает исключение DateMalformedStringException , если передали строку с недопустимой датой и временем.

Список изменений

Версия Описание
8.4.0 Теперь предварительный тип возвращаемого значения — DateTime ; ранее был DateTime |false .
8.3.0 Метод DateTime::modify() теперь выбрасывает исключение DateMalformedStringException , если передали строку в недопустимом формате. Раньше метод возвращал значение false и выдавал предупреждение. Функция date_modify() не изменилась.

Примеры

Пример #1 Пример изменения метки времени методом DateTime::modify()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');

Результат выполнения приведённого примера:

2006年12月13日

Процедурный стиль

<?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日

Пример #3 Метод поддерживает все форматы даты и времени

<?php
$date = new DateTime('2020-12-31');
$date->modify('July 1st, 2023');
echo $date->format('Y-m-d H:i') . "\n";
$date->modify('Monday next week');
echo $date->format('Y-m-d H:i') . "\n";
$date->modify('17:30');
echo $date->format('Y-m-d H:i') . "\n";

Результат выполнения приведённого примера:

2023年07月01日 00:00
2023年07月03日 00:00
2023年07月03日 17:30

Смотрите также

  • strtotime() - Преобразовывает текстовое представление даты на английском языке в метку времени Unix
  • DateTimeImmutable::modify() - Создаёт новый объект с изменённой временной меткой
  • DateTime::add() - Изменяет объект DateTime, добавляя количество дней, месяцев, лет, часов, минут и секунд
  • DateTime::sub() - Вычитает дни, месяцы, годы, часы, минуты и секунды из объекта DateTime
  • DateTime::setDate() - Устанавливает дату
  • DateTime::setISODate() - Устанавливает дату в формате ISO
  • DateTime::setTime() - Устанавливает время
  • DateTime::setTimestamp() - Устанавливает дату и время на основе метки времени Unix

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /