DateInterval подробно
- Подробности
- Категория: PHP
- Просмотров: 164
В PHP часто нужно оперировать датой и временем, поэтому...
DateInterval в этом отлично поможет...как он работает подробно.
Его конструктор Datetime, который выводит время:
$date_and_time = new Datetime(); // поместить настоящее время в эту переменную и затем можно ее вывести или с ней работать.
А вот DateInterval - задает интервалы, например, вам нужно вычислить автоматически какое будет время, если отнять от текущей даты и времени 1 день, 7 дней или месяц, или какое будет время и даты, если прибавить 2 раза к настоящей, которая сейчас:
<?php
$interval = new DateInterval('P2W'); # 2-week
$date = new DateTime('Jan 20, 2022 2:00:00PM');
echo $date->format('d-M-Y H:i:s') . '<br>';
# 20-Jan-2022 14:00:00
$date->add($interval);
echo $date->format('d-M-Y H:i:s') . '<br>';
# 03-Feb-2022 14:00:00
// Adding the same interval again
$date->add($interval);
echo $date->format('d-M-Y H:i:s');
# 17-Feb-2022 14:00:00
Тут мы воспользовались методом add - его используют, чтобы высчитать будущую дату, а чтобы вычесть sub :
<?php
$interval = new DateInterval('P2W'); # 2-week
$date = new DateTime('Jan 20, 2022 2:00:00PM');
echo $date->format('d-M-Y H:i:s') . '<br>';
# 20-Jan-2022 14:00:00
$date->sub($interval);
echo $date->format('d-M-Y H:i:s') . '<br>';
# 06-Jan-2022 14:00:00
// Adding the same interval again
$date->sub($interval);
echo $date->format('d-M-Y H:i:s');
# 23-Dec-2021 14:00:00
Спецификация интервала также может быть представлена в виде даты и времени. Например, формат P2YT2H10M может быть записан как P0002-00-00T02:10:00.
DateInterval принимает в качестве аргумента - интервал, который записываются с помощью данных буковок:
P – Формат должен начинаться с буквы P (период), следующие обозначения представляют период:
- Y (годы): P2Y означает 2 года.
- M (месяцы): P2Y3M означает 2 года и 3 месяца.
- D (дни): P2Y3M29D означает 2 года, 3 месяца и 29 дней.
- W (недели): P2Y3M2W означает 2 года, 3 месяца и 2 недели.
T – Временная часть спецификации интервала представлена T (время).
- H (часы): PT2H означает 2 часа, P2Y3M29DT2H означает 2 года, 3 месяца, 29 дней и 2 часа.
- M (минуты): PT2H5M означает 2 часа и 5 минут. P2YT2H5M означает 2 года, 2 часа и 5 минут.
- S (секунды): PT59S означает только 59 секунд. P3MT5S означает 3 месяца и 5 секунд.