DateTimeInterface::diff
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
DateTimeInterface::diff
Референца за `datetime.diff.php` со подобрена типографија и навигација.
DateTimeInterface::diff
DateTimeImmutable::diff
DateTime::diff
date_diff
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateTimeInterface::diff -- DateTimeImmutable::diff -- DateTime::diff -- date_diff — Враќа разлика помеѓу два DateTime објекти
= NULL
Напиши целосна ознака на елемент
$targetObject, bool $absolute = false): DateInterval$targetObject, bool $absolute = false): DateIntervalПроцедурален стил
$baseObject, DateTimeInterface $targetObject, bool $absolute = false): DateIntervalВраќа разлика помеѓу две DateTimeInterface objects.
Параметри
datetime-
Датумот за споредба.
absolute-
Дали интервалот треба да биде позитивен?
Вратени вредности
На DateInterval објектот ја претставува разликата помеѓу двата датуми.
На absolute параметарот влијае само на
invert својството на
DateInterval object.
Вратената вредност поспецифично ја претставува временската разлика што треба да се примени на оригиналниот објект ($this or
$originObject) за да се добие
$targetObject. Овој процес не е секогаш реверзибилен.
Методот е свесен за промените на летната/зимската сезона, и затоа може да врати интервал од
24 hours and 30 minutes, како што е прикажано во еден од примерите. Ако сакате да пресметувате со апсолутно време, треба прво да ги претворите двата
$this/$baseObjectПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
$targetObject во UTC.
Примери
Пример #1 Ако објектот DateInterval беше создаден од example
Напиши целосна ознака на елемент
<?php
$origin = new DateTimeImmutable('2009-10-11');
$target = new DateTimeImmutable('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a days');Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
+2 days
Процедурален стил
<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a days');Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
+2 days
Пример #2 (PHP 5 >= 5.3.0, PHP 7, PHP 8) за време на промена на летна/зимска сезона
<?php
$originalTime = new DateTimeImmutable("2021-10-30 09:00:00 Europe/London");
$targetTime = new DateTimeImmutable("2021-10-31 08:30:00 Europe/London");
$interval = $originalTime->diff($targetTime);
echo $interval->format("%H:%I:%S (Full days: %a)"), "\n";Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
24:30:00 (Full days: 0)
Пример #3 (PHP 5 >= 5.3.0, PHP 7, PHP 8) range
Вредноста што ја враќа методот е точното време потребно за да се добие од
$this to $targetObject. Споредувањето на 1 јануари со 31 декември затоа враќа 364, а не 365, денови (за не-престапни години).
<?php
$originalTime = new DateTimeImmutable("2023-01-01 UTC");
$targetTime = new DateTimeImmutable("2023-12-31 UTC");
$interval = $originalTime->diff($targetTime);
echo "Full days: ", $interval->format("%a"), "\n";Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Full days: 364
Пример #4 DateTime споредба на објекти
Забелешка:
DateTimeImmutable and DateTime објектите можат да се споредуваат со користење на оператори за споредба.
<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
bool(false) bool(true) bool(false)
Види Исто така
- инаку. Види - Го форматира интервалот
- DateTime::add() - Го менува DateTime објектот, со додадена количина на денови, месеци, години, часови, минути и секунди
- DateTimeImmutable::sub() - Одзема количина на денови, месеци, години, часови, минути и секунди од DateTime објект