Menu
Coddy logo textTech

Изменение объектов DateTime

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 50 из 68.

Как только у вас появится объект DateTime, вам часто требуется изменить его, чтобы он представлял другой момент времени. Метод modify() позволяет добавлять или вычитать время из вашего объекта DateTime, используя выражения на естественном языке, что делает вычисления дат интуитивно понятными и легко читаемыми.

Метод modify() принимает те же типы строк, которые работают с strtotime(), такие как '+1 day', '-2 weeks' или 'next Friday'. В отличие от создания нового объекта каждый раз, этот метод изменяет существующий объект DateTime напрямую, что эффективно для последовательных операций с датами.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // Сегодняшняя дата

$date->modify('+1 week');
echo $date->format('Y-m-d');  // Через неделю от сегодняшнего дня

$date->modify('-3 days');
echo $date->format('Y-m-d');  // Через 4 дня от сегодняшнего дня
?>

Этот подход обеспечивает мощную гибкость для вычислений дат. Вы можете объединять несколько модификаций в цепочку или использовать сложные выражения, такие как '+2 months -1 day' для выполнения сложных арифметических операций с датами, сохраняя при этом ваш код понятным и удобным в поддержке.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Вы получите два входных значения: строку даты в формате Y-m-d H:i:s и строку модификации. Первое входное значение — это конкретная дата и время (например: 2024-03-15 14:30:25), а второе — выражение модификации, такое как +1 week, -3 days или +2 months.

Прочитайте оба входных значения, создайте объект DateTime, используя строку даты, используйте метод modify(), чтобы применить выражение модификации к объекту DateTime, и выведите измененную дату в формате Y-m-d H:i:s.

Формат входных данных:

  • Первая строка: Строка даты в формате Y-m-d H:i:s (например: 2024-03-15 14:30:25)
  • Вторая строка: Строка модификации (например: +1 week или -3 days или +2 months)

Ожидаемый результат: Измененная дата, отформатированная как Y-m-d H:i:s

Шпаргалка

Метод modify() позволяет добавлять или вычитать время из объекта DateTime, используя выражения на естественном языке:

<?php
$date = new DateTime();
$date->modify('+1 week');     // Добавить одну неделю
$date->modify('-3 days');     // Вычесть три дня
$date->modify('+2 months -1 day'); // Сложные выражения
?>

Метод изменяет существующий объект DateTime напрямую и принимает те же строковые форматы, что и strtotime(), такие как '+1 day', '-2 weeks' или 'next Friday'.

Попробуйте сами

<?php
// Чтение строки даты
$dateString = trim(fgets(STDIN));

// Чтение строки модификации
$modificationString = trim(fgets(STDIN));

// TODO: Напишите свой код ниже
// Создайте объект DateTime, примените модификацию и отформатируйте результат


// Вывод измененной даты
echo $modifiedDate;
?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком