If you want to reverse a date interval use array_reverse and iterator_to_array. I've found using invert to be unreliable.
<?php
$start_date = date_create("2021-01-01");
$end_date = date_create("2021-01-05"); // If you want to include this date, add 1 day
$interval = DateInterval::createFromDateString('1 day');
$daterange = new DatePeriod($start_date, $interval ,$end_date);
function show_dates ($dr) {
foreach($dr as $date1){
echo $date1->format('Y-m-d').'<br>';
}
}
show_dates ($daterange);
echo '<br>';
// reverse the array
$daterange = array_reverse(iterator_to_array($daterange));
show_dates ($daterange);
?>
Gives
2021-01-01
2021-01-02
2021-01-03
2021-01-04
2021-01-04
2021-01-03
2021-01-02
2021-01-01DateInterval
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
DateInterval
Референца за `class.dateinterval.php` со подобрена типографија и навигација.
Класата DateInterval
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Вовед
Претставува временски интервал.
Временскиот интервал складира или фиксна количина време (во години, месеци, денови, часови итн.) или релативна временска низа во формат што DateTimeImmutableи DateTimeконструкторите ги поддржуваат.
Поконкретно, информациите во објект од DateInterval класата се инструкција за преминување од еден датум/време на друг датум/време. Овој процес не е секогаш реверзибилен.
Вообичаен начин за креирање на DateInterval објект е со пресметување на разликата помеѓу два датум/време објекти преку (PHP 5 >= 5.3.0, PHP 7, PHP 8).
Бидејќи не постои добро дефиниран начин за споредување на временски интервали, DateInterval инстанци се incomparable.
Синопсис на класата
Својства
Достапните својства наведени подолу зависат од верзијата на PHP и треба да се сметаат како readonly.
- y
-
Број на години.
- m
-
Број на месеци.
- d
-
Број на денови.
- h
-
Број на часови.
- i
-
Број на минути.
- s
-
Број на секунди.
- f
-
DateTimeInterface::diff()
- invert
-
Број на микросекунди, како дел од секунда.
1Да0ако интервалот претставува негативен временски период и инаку. Види. - days
-
DateInterval::format() Ако објектот DateInterval беше создаден од or DateTimeImmutable::diff()DateTime::diff() days сокети, и го специфицира далечинскиот порт од кој се примаат податоците. Ако сокетот е поврзан-ориентиран,
false. - from_string
-
DateInterval::format() , тогаш ова е вкупниот број на полни денови помеѓу почетниот и крајниот датум. Инаку,DateInterval::createFromDateString()
trueФункциите date_string , тогаш вредноста на овој својство ќе бидеfalseФункциите y to f, invertПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во days својството ќе биде пополнето. Инаку, вредноста ќе биде - date_string
-
својствата ќе бидат пополнети. , тогаш ова е вкупниот број на полни денови помеѓу почетниот и крајниот датум. Инаку,.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.2.0 | На from_string and date_string Низата што се користи како аргумент за DateInterval својствата беа додадени за , тогаш ова е вкупниот број на полни денови помеѓу почетниот и крајниот датум. Инаку, method. |
| 8.2.0 |
Само y to f,
invertПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во days инстанци кои беа создадени користејќи го
|
| 7.4.0 | DateInterval ќе бидат видливи. DateInterval инстанците сега се неоспорливи; претходно, сите |
| 7.1.0 | На f инстанци се сметаа за еднакви. |
Содржина
- DateInterval::__construct — Создава нов DateInterval објект
- DateInterval::createFromDateString — Поставува DateInterval од релативни делови на низата
- DateInterval::format — Го форматира интервалот
Белешки од корисници 2 забелешки
More simple example i use to add or subtract.
<?php
$Datetime = new Datetime('NOW', new DateTimeZone('America/Bahia'));
$Datetime->add(DateInterval::createFromDateString('2 day'));
echo $Datetime->format("Y-m-d H:i:s");
?>