DateTime osztály
A DateTime osztály az elsődleges eszköz dátumok és idő kezelésére OOP stílusban. Lehetővé teszi dátum/idő objektumok létrehozását, módosítását és a kimenet formázását.
Aktuális időpillanat
Hozzunk létre egy DateTime objektumot
az aktuális dátummal és idővel:
<?php
$date = new DateTime();
?>
Konkrét dátum
Hozzunk létre egy DateTime objektumot megadott dátummal:
<?php
$date = new DateTime('2025-12-31');
?>
Konkrét dátum és idő
Hozzunk létre egy DateTime objektumot
megadott dátummal és idővel:
<?php
$date = new DateTime('2025-12-31 12:59:59');
?>
Kimenet formázása
A létrehozott dátumot megadott formátumban lehet kiírni
a format metódus segítségével. Tegyük ezt
az aktuális időpillanatra:
<?php
$date = new DateTime();
echo $date->format('Y-m-d H:i:s');
?>
Eredmény (változhat a végrehajtás pillanatától függően):
'2025-11-15 14:25:00'
Megadott dátum formázása
Formázzunk megadott dátumot:
<?php
$date = new DateTime('2025-12-31');
echo $date->format('d.m.Y');
?>
A kód végrehajtásának eredménye:
'31.12.2025'
Intervallum hozzáadása
Intervallum hozzáadása dátumhoz
a add metódussal történik:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P10D'); // 10 nap
$date->add($interval);
echo $date->format('Y-m-d');
?>
A kód végrehajtásának eredménye:
'2025-05-25'
Intervallum kivonása
Intervallum kivonása dátumból
a sub metódussal történik:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 hónap és 2 nap
$date->sub($interval);
echo $date->format('Y-m-d');
?>
A kód végrehajtásának eredménye:
'2025-04-13'
Új dátum beállítása
Beállítható új dátum a
DateTime objektum számára. Ez
a setDate metódussal történik:
<?php
$date = new DateTime();
$date->setDate(2025, 12, 31);
echo $date->format('Y-m-d');
?>
A kód végrehajtásának eredménye:
'2025-12-31'
Idő beállítása
Beállítható új idő a
DateTime objektum számára. Ez
a setTime metódussal történik:
<?php
$date = new DateTime();
$date->setTime(15, 30, 0);
echo $date->format('H:i:s');
?>
A kód végrehajtásának eredménye:
'15:30:00'
Dátumok összehasonlítása
Összehasonlíthatók a dátum objektumok:
<?php
$date1 = new DateTime('2025-01-01');
$date2 = new DateTime('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Különbség dátumok között
A diff metódussal kiszámítható
a dátumok közötti különbség. A különbség
DateInterval
objektum formájában tér vissza:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m hónap %d nap');
?>
A kód végrehajtásának eredménye:
'1 hónap 14 nap'
Időzóna
A DateTime objektum létrehozásakor
megadható időzóna:
<?php
$timeZone = new DateTimeZone('Europe/Moscow');
$date = new DateTime('2025-12-31 23:59:59', $timeZone);
echo $date->format('Y-m-d H:i:s e');
?>
A kód végrehajtásának eredménye:
'2025-12-31 23:59:59 Europe/Moscow'
Lásd még
-
DateTimeImmutableosztály,
amely módosíthatatlan dátumot hoz létre -
DateIntervalosztály,
amely időintervallumot határoz meg -
DateTimeZoneosztály,
amely időzónát határoz meg