Изменение объектов 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' для выполнения сложных арифметических операций с датами, сохраняя при этом ваш код понятным и удобным в поддержке.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите два входных значения: строку даты в формате 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;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»7Работа с датами и временем
Функция 'date()'Unix-метки времени с 'time()'Введение в объект DateTimeФорматирование объектов DateTimeИзменение объектов DateTimeИтоги: Вычисления с датами2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров