PHP: Vypočítejte rozdíly v datech ve dnech, hodinách a dalších hodnotách.

Výpočty rozdílů dat v jazyce PHP Výpočty data jsou nezbytné pro úlohy, jako je plánování, kontrola platnosti, analýza a ověřování na základě času. Jazyk PHP poskytuje přesné a spo...

Světlý režim slouží jen pro ukázku funkcionality. Proto používejte tmavou verzi webu.

19. 11. 2025

PHP: Vypočítejte rozdíly v datech ve dnech, hodinách a dalších hodnotách.

Výpočty rozdílů dat v jazyce PHP

Výpočty data jsou nezbytné pro úlohy, jako je plánování, kontrola platnosti, analýza a ověřování na základě času. Jazyk PHP poskytuje přesné a spolehlivé nástroje pro tyto operace prostřednictvím funkcí DateTime, DateInterval a časových značek. V tomto příspěvku na blogu vám na stručných příkladech ukážu, jak vypočítat rozdíly dat ve všech běžných jednotkách.

Použití DateTime a diff

DateTime představuje časový okamžik. Metoda diff porovnává dva objekty DateTime a vrací DateInterval.

$date1 = new DateTime('2024-01-01');
$date2 = new DateTime('2024-02-10');
$interval = $date1->diff($date2);

DateInterval vystavuje vlastnosti jako y, m, d, h, i, s. Automaticky zpracovává přestupné roky, hranice měsíců a změny denního světla.

Rozdíl ve dnech

Použití diff:

$date1 = new DateTime('2024-01-01');
$date2 = new DateTime('2024-01-20');
$days = $date1->diff($date2)->days;
echo $days;

Vlastnost days vrací celkový rozdíl ve dnech.

Použití časových značek:

$seconds = abs(strtotime('2024-01-01') - strtotime('2024-01-20'));
$days = intdiv($seconds, 86400);
echo $days;

Časová razítka použijte, pokud potřebujete pouze kompletní počty dnů bez kalendářních pravidel.

Rozdíl v hodinách

Použití DateInterval:

$date1 = new DateTime('2024-01-01 00:00');
$date2 = new DateTime('2024-01-02 05:00');
$diff = $date1->diff($date2);
$hours = $diff->days * 24 + $diff->h;
echo $hours;

Použití časových značek:

$seconds = abs(strtotime('2024-01-01 00:00') - strtotime('2024-01-02 05:00'));
$hours = intdiv($seconds, 3600);
echo $hours;

Rozdíl v měsících

DateInterval zobrazuje roky a měsíce. Celkový počet měsíců je počet let vynásobený 12 plus měsíce.

$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2024-04-01');
$diff = $date1->diff($date2);
$months = $diff->y * 12 + $diff->m;
echo $months;

DateInterval správně zohledňuje různé délky měsíců.

Rozdíl v sekundách

Nejjednodušší metodou je použití časových značek.

$seconds = abs(strtotime('2024-01-01 12:00') - strtotime('2024-01-01 12:10'));
echo $seconds;

Pokud potřebujete přesné rozdíly druhé úrovně, použijte časové značky.

Rozdíl v letech

DateInterval automaticky zpracovává přestupné roky.

$date1 = new DateTime('2020-02-29');
$date2 = new DateTime('2024-02-28');
$years = $date1->diff($date2)->y;
echo $years;

Rozdíl od současnosti

Porovnání libovolného data s aktuálním okamžikem:

$target = new DateTime('2024-12-25');
$now = new DateTime();
$daysFromNow = $now->diff($target)->days;
echo $daysFromNow;

Tím se získá celkový počet dní od dnešního dne do cílového data.

Rozdíl v minutách

Použití časových značek:

$seconds = abs(strtotime('2024-01-01 12:00') - strtotime('2024-01-01 12:45'));
$minutes = intdiv($seconds, 60);
echo $minutes;

Převod z DateInterval:

$diff = (new DateTime('12:00'))->diff(new DateTime('12:45'));
$minutes = $diff->h * 60 + $diff->i;
echo $minutes;

Rozdíl v hodinách a minutách

DateInterval může výsledek přímo formátovat.

$date1 = new DateTime('2024-01-01 08:00');
$date2 = new DateTime('2024-01-01 12:45');
echo $date1->diff($date2)->format('%h hours %i minutes');

Nebo vypočítejte celkový počet minut a rozdělte je:

$seconds = abs(strtotime('08:00') - strtotime('12:45'));
$totalMinutes = intdiv($seconds, 60);
$hours = intdiv($totalMinutes, 60);
$minutes = $totalMinutes % 60;
echo $hours . ' hours ' . $minutes . ' minutes';

Shrnutí doporučených přístupů

DateTime s diff je ideální pro výpočty s ohledem na kalendář, jako jsou měsíce, roky a porovnávání celých dat. Časová razítka jsou ideální pro hrubý výpočet uplynulých sekund, minut a hodin, kdy jsou pravidla kalendáře irelevantní. Použijte DateInterval metoda formátování pro čistý kombinovaný výstup, například hodiny a minuty.

Původní článek publikoval Nabil Hassen.

Mohlo by vám pomoct

Praktické věci kolem webu

Než se pustíte do webu, hodí se mít jasno v podkladech, WordPressu, cookies a měření.

Google reference

Co říkají klienti

Ukázky skutečných recenzí, které klienti zanechali na mém Google profilu.

Přejít na recenze
★ ★ ★ ★ ★

„Člověk, který své práci a rozumí a ví co dělá. Velmi rychlá komunikace a profesionální přístup. Doporučuji.“

Jaroslav Kupča
Google
★ ★ ★ ★ ★

„Skvělá spolupráce, při dalších projektech určitě nebudu shánět někoho jiného.“

Roman Koňařík
Google
★ ★ ★ ★ ★

„S panem Vančurou jsem spolupracovala na tvorbě mých webových stránek a jsem maximálně spokojená. Oceňuji profesionální přístup, rychlou komunikaci a schopnost přesně pochopit moje představy. Web je moderní, přehledný, funkční a skvěle vypadá i na mobilu. Celý proces proběhl hladce, s jasným vysvětlením jednotlivých kroků a výborným výsledkem. Určitě doporučuji každému, kdo hledá spolehlivý a kvalitní přístup.“

Barbora Zemánková
Google
★ ★ ★ ★ ★

„Spolupráce při tvorbě konfigurátoru proběhla naprosto bez problémů. Oceňuji profesionální přístup, rychlou komunikaci a schopnost pochopit specifický projekt od A do Z. Konfigurátor je přehledný, funkční a přesně odpovídá mým požadavkům. Rozhodně doporučuji.“

mareksevcik_FPV
Google
★ ★ ★ ★ ★

„Velmi dobrá a rychlá spolupráce. Doporučuji!“

Leoš Kaucký
Google
★ ★ ★ ★ ★

„Přesně takto si představujeme profesionální práci. Dekujeme“

STAVILLI
Google
★ ★ ★ ★ ★

„Ať už se jedná o optimalizaci webu, nebo tvorbu na míru oceňuji kromě profesionální práce a znalostí problematiky také férový přístup a komunikaci.“

Aleš Illický
Google
★ ★ ★ ★ ★

„Děkuji za profesionální spolupráci, vše dle domluvy, naprostá spokojenost a mohu jen vřele doporučit.... Při dalších projektech určitě opět využiji Vašich služeb“

Peter Spilak
Google
★ ★ ★ ★ ★

„Profesionalita a velká ochota, nemohu jinak než doporučit“

Magdalena Vašková
Google
★ ★ ★ ★ ★

„Skvělá zkušenost při tvorbě webu, profesionální přístup, rychlost, ochota pomoci“

Jana Kono
Google
★ ★ ★ ★ ★

„Rychlá spolupráce a komunikace – mohu jen doporučit.“

Gawix
Google
★ ★ ★ ★ ★

„Moc mi pomohl, když jsem potřebovala pomoc s webem. A bylo to gratis :)). Jsem mu neskonale vděčná.“

Radka Arbesová
Google
★ ★ ★ ★ ★

„Děkuji Jiřímu za rychlou a kvalitní spolupráci na tvorbě webu. Srozumitelná a ochotná komunikace mě vždycky potěší a přináší důvěru.“

Jiří Mařík
Google
★ ★ ★ ★ ★

„Jsem maximálně spokojená. Rychlost, ochota a cenově dostupné. Děkuji“

Veronika Černá
Google
★ ★ ★ ★ ★

„Naprostá spokojenost. Rychlá komunikace, skvělá cena a odborná pomoc. Moc děkuji :)“

Patricie Kučerová
Google
★ ★ ★ ★ ★

„Velká spokojenost, rychlost a p. Vančura moc dobře ví co dělá. :)“

Ondřej Daniško
Google
★ ★ ★ ★ ★

„dobrá práce, rychlá odezva“

Zuzana Jírová
Google
★ ★ ★ ★ ★

„S programátory mám zkušeností hodně, ale tady musím opravdu pochválit. Pro mě a mé přátele vytvořil skvělý nástroj na evidenci sbírek a opravdu se to povedlo. Bylo to hotové rychle, kvalitně a za skvělou cenu. Komunikace funguje velmi rychle, což je super a ne úplně standard. Díky za super práci, za mě 100% spokojenost!“

Zdeněk
Google
★ ★ ★ ★ ★

„Vše bylo rychlé a hlavně to funguje. Dobrá práce.“

Lukáš Bartášek
Google
★ ★ ★ ★ ★

„Normálně recenze nepíši, ale zde rád doporučím kvalitní práci. Jiří pro mě vytvořil web pro dětské tábory. Kvalitní práce, rychlá komunikace a vlastní nápady, které Jiří sám přidá, jsou na velice vysoké úrovni. Nemohu hodnotit jinak než 5/5.“

Tomáš Loněk
Google
★ ★ ★ ★ ★

„Pan Jiri nam delal jiz 3 webove stranky a vzdy velka spokojenost, je mega rychly a vse hned kladne vyridi, mohu pouze doporucit. Poradi si bez problemu i s rezervacnimi kalendaremi, udrzbou socialnich siti, atd.“

Barbara Mašková
Google