Membandingkan Waktu pada PHP

Ada beberapa pertanyaan pada suatu group tentang cara untuk membandingkan waktu. Dari situ saya jadi terinspirasi untuk membuat posting ini. Penting rasanya bila kita mempelajari perbandingan 2 waktu untuk mengetahui seberapa jauhkah waktu yang kita peroleh dari perbandingan kedua waktu tersebut. Pada kenyataan yang ada cara ini sangat bermanfaat sekali misalkan pada aplikasi berbasis peminjaman entah itu buku, kendaraan, uang, dan lain-lain sesuai kebutuhan anda. Berikut merupakan 2 cara yang secara umum sering digunakan.

Teknik Object oriented

<?php
 $datetime1 = new DateTime('2012-10-11');
 $datetime2 = new DateTime('2012-10-13');
 $interval = $datetime1->diff($datetime2);
 echo $interval->format('%R%d days');
 ?>

 

Teknik procedural

<?php
 $datetime1 = date_create('2012-10-11');
 $datetime2 = date_create('2012-10-13');
 $interval = date_diff($datetime1, $datetime2);
 echo $interval->format('%R%d days');
 ?>

 

Dari hasil di atas sama sama menghasilkan +2 hari. Hal yang perlu kita perhatikan adalah pada script echo $interval->format(‘%R%a days’); dan echo $interval->format(‘%R%a days’); terdapat karakter %R berfungsi untuk mengetahui hasil perbandingan apakah + atau -. Sedangkan %d untuk mengetahui total perbandingan berdasarkan hari. Intinya terserah anda sendiri untuk menggunakan teknik yang mana & sesuai dengan kebutuhan. Berikut merupakan tabel lengkapnya.

SIMBOL KETERANGAN CONTOH
% Sebagai literal. %
Y Tahun, numerik, 2 digit di awali dengan 0. 01, 03
y Tahun, numerik. 1, 3
M Bulan, numerik, 2 digit di awali dengan 0. 01, 03, 12
m Bulan, numerik. 1, 3, 12
D Hari, numerik, 2 digit di awali dengan 0. 01, 03, 31
d Hari, numerik. 1, 3, 31
H Jam, numerik, 2 digit diawali dengan 0. 01, 03, 23
h Jam, numerik. 1,3, 23
I Menit, numerik, 2 digit diawali dengan 0. 01, 03, 59
i Menit, numerik. 1,3, 59
S Detik, numerik, 2 digit diawali dengan 0. 01, 03, 59
s Detik, numerik. 1,3, 59
R Menambahkan tanda – untuk negatif, + ketika positif. – ,+
r Menambahkan tanda – untuk negatif, (kosong) ketika positif -,

Cara diatas hanya berlaku untuk hitungan hari saja & maksimal cuma 31 hari. Bila lebih dari itu disarankan ditambahkan format %M untuk bulan dan %Y untuk tahun.

<?php
 $datetime1 = new DateTime('2012-10-11');
 $datetime2 = new DateTime('2008-12-18');
 $interval = $datetime1->diff($datetime2);
 echo $interval->format('%R %Y Years %M Month %d days');
 // Hasil : - 03 Years 09 Month 24 days
 ?>

 

Semoga posting ini dapat bermanfaat bagi kita semua.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s