Kelas DateInterval
Kelas DateInterval memungkinkan untuk bekerja dengan interval waktu di PHP.
Kelas ini digunakan untuk menyimpan perbedaan antara dua tanggal atau untuk menentukan interval
dalam metode yang berhubungan dengan tanggal. Interval dibuat dalam format khusus.
Sintaks
DateInterval::__construct(string $duration)
Format Interval
Format terdiri dari huruf P (period)
dan elemen-elemen:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Dalam format ini: Y - tahun, M - bulan,
D - hari, T - pemisah waktu,
H - jam, M - menit, S - detik,
W - minggu.
Sebelum huruf-huruf ini perlu ditulis nilai yang sesuai.
Sebagai contoh, 3Y akan berarti
tiga tahun, dan 5Y2M akan berarti
5 tahun dan 2 bulan.
Setelah dibuat, objek DateInterval
akan berisi properti-properti berikut:
<?php
$interval->y // tahun
$interval->m // bulan
$interval->d // hari
$interval->h // jam
$interval->i // menit
$interval->s // detik
$interval->f // mikrodetik
$interval->invert // 1 jika interval negatif
$interval->days // jumlah hari (jika dibuat melalui diff())
?>
Mari kita lihat cara kerja interval pada contoh-contoh:
Contoh
Buatlah interval selama 1 jam, 45 menit dan 30 detik:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Contoh
Buatlah interval selama 3 minggu dan 2 hari:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Contoh
Buatlah interval selama 5 bulan, 10 hari dan 6 jam:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Contoh
Buatlah interval selama 2 tahun dan 15 menit:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Contoh
Buatlah interval selama 1 hari, 12 jam dan 30 detik:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Contoh
Buatlah interval negatif selama 1 tahun dan 3 bulan (interval mundur):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Contoh
Buatlah interval negatif selama 2 jam, 30 menit (interval mundur):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Hasil eksekusi kode:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Contoh
Tambahkan interval ke tanggal saat ini:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Hasil eksekusi kode:
'2023-01-11'
Contoh
Hitunglah perbedaan antara dua tanggal:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m bulan %d hari');
?>
Hasil eksekusi kode:
'1 bulan 14 hari'
Lihat Juga
-
kelas
DateTime,
yang merepresentasikan tanggal dan waktu -
kelas
DateTimeZone,
yang merepresentasikan zona waktu