Klass DateTime
Klass DateTime on peamine tööriist kuupäevade ja kellaajaga töötlemiseks OOP stiilis. See võimaldab luua kuupäeva/kellaaja objekte, neid muuta ja vormindada väljundit.
Praegune ajahetk
Loome objekti DateTime
koos praeguse kuupäeva ja kellaajaga:
<?php
$date = new DateTime();
?>
Konkreetne kuupäev
Loome objekti DateTime määratud kuupäevaga:
<?php
$date = new DateTime('2025-12-31');
?>
Konkreetne kuupäev ja kellaaeg
Loome objekti DateTime
koos määratud kuupäeva ja kellaajaga:
<?php
$date = new DateTime('2025-12-31 12:59:59');
?>
Väljundi vormindamine
Loodud kuupäeva saab väljastada määratud vormingus
meetodi format abil. Teeme seda
praeguse ajahetke jaoks:
<?php
$date = new DateTime();
echo $date->format('Y-m-d H:i:s');
?>
Tulemus (muutub sõltuvalt täitmise hetkest):
'2025-11-15 14:25:00'
Määratud kuupäeva vormindamine
Vormindame määratud kuupäeva:
<?php
$date = new DateTime('2025-12-31');
echo $date->format('d.m.Y');
?>
Koodi täitmise tulemus:
'31.12.2025'
Intervalli lisamine
Intervalli lisamine kuupäevale
teostatakse meetodi add abil:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P10D'); // 10 päeva
$date->add($interval);
echo $date->format('Y-m-d');
?>
Koodi täitmise tulemus:
'2025-05-25'
Intervalli lahutamine
Intervalli lahutamine kuupäevast
teostatakse meetodi sub abil:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 kuu ja 2 päeva
$date->sub($interval);
echo $date->format('Y-m-d');
?>
Koodi täitmise tulemus:
'2025-04-13'
Uue kuupäeva määramine
Saame määrata uue kuupäeva
objektile DateTime. Seda tehakse
meetodi setDate abil:
<?php
$date = new DateTime();
$date->setDate(2025, 12, 31);
echo $date->format('Y-m-d');
?>
Koodi täitmise tulemus:
'2025-12-31'
Kellaaja määramine
Saame määrata uue kellaaja
objektile DateTime. Seda tehakse
meetodi setTime abil:
<?php
$date = new DateTime();
$date->setTime(15, 30, 0);
echo $date->format('H:i:s');
?>
Koodi täitmise tulemus:
'15:30:00'
Kuupäevade võrdlemine
Saame võrrelda kuupäevade objekte:
<?php
$date1 = new DateTime('2025-01-01');
$date2 = new DateTime('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Kuupäevade vahe
Meetodi diff abil saame arvutada
kuupäevade vahe. Vahe
tagastatakse objekti
DateInterval kujul:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m kuud %d päeva');
?>
Koodi täitmise tulemus:
'1 kuud 14 päeva'
Ajavöönd
Objekti DateTime loomisel
saab määrata ajavööndi:
<?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');
?>
Koodi täitmise tulemus:
'2025-12-31 23:59:59 Europe/Moscow'
Vaata ka
-
klass
DateTimeImmutable,
mis loob muutmatu kuupäeva -
klass
DateInterval,
mis määrab ajavahemiku -
klass
DateTimeZone,
mis määrab ajavööndi