PHP.mk документација

DateTimeInterface::diff

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

datetime.diff.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека datetime.diff.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
DateTimeInterface::diff

Референца за `datetime.diff.php` со подобрена типографија и навигација.

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

Напиши целосна ознака на елемент

public DateTimeInterface::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTimeImmutable::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTime::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Процедурален стил

date_diff(DateTimeInterface $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 објект

Белешки од корисници

Нема белешки од корисници за оваа страница.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.