Menghitung Selisih Waktu Dengan PHP

Menghitung selisih waktu dengan PHP adalah hal yang penting untuk dikuasai.
Kenapa begitu?
Karena terkadang kita dihadapkan dengan kondisi dimana aplikasi yang sedang kita buat harus memiliki fitur untuk menghitung selisih waktu, baik itu dalam bentuk jumlah tahun, bulan, hari, jam, bahkan selisih menit.
Sebelumnya kita sudah membahas tentang cara menghitung selisih tanggal dengan PHP. silahkan teman-teman baca.
Pada tutorial ini kita akan fokus pada cara membuat selisih waktu dengan PHP. Selisih waktu yang akan kita buat adalah selisih waktu yang detail. yaitu ada selisih jumlah tahun, bulan, hari, jam sampai detik.
Menghitung Selisih Waktu Dengan PHP
Salah satu cara membuat perhitungan selisih waktu dengan PHP adalah kita bisa menggunakan fungsi date_diff()
yang sudah tersedia di PHP.
Menghitung selisih waktu dengan date_diff()
merupakan cara yang paling mudah.
Contoh Cara Menghitung Selisih Waktu Dengan PHP Menggunakan date_diff()
Buat sebuah file PHP. di sini saya membuat sebuah file dengan nama selisih_waktu.php.
selisih_waktu.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<h2><a href="https://www.malasngoding.com/menghitung-selisih-waktu-dengan-php">Menghitung Selisih Waktu Dengan PHP - Malasngoding.com</a></h2> <?php $dari = date_create('1994-2-15 13:12:30'); // waktu awal. format penulisan tahun-bulan-tanggal jam:menit:detik $sampai = date_create(); // waktu sekarang. saat tutorial ini dibuat, yaitu : 30/1/2024 16:00:00 // menghitung perbedaan waktu. tanggal dari pada parameter pertama, tanggal sampai pada parameter kedua $diff = date_diff($dari, $sampai); // menampilkan output hasil proses date_diff() // Menampilkan selisih tahun echo $diff->y . ' Tahun, '; // Menampilkan selisih bulan echo $diff->m . ' Bulan, '; // Menampilkan selisih hari echo $diff->d . ' Hari, '; // Menampilkan selisih jam echo $diff->h . ' Jam, '; // Menampilkan selisih menit echo $diff->i . ' Menit, '; // Menampilkan selisih detik echo $diff->s . ' Detik.'; echo "<br>"; // menampilkan format total jumlah hari echo 'Total "jumlah hari" anda hidup sampai saat ini adalah ' . $diff->days . ' hari.'; // Output: Total selisih hari: 10398 ?> |
Jalankan dan hasilnya seperti berikut.

Perhatikan pada contoh coding di atas tadi.
Hal pertama yang kita lakukan adalah menyimpan 2 buah tanggal. yaitu tanggal dari mulai waktu di hitung sampai batas waktu di hitung.
Pada contoh ini saya mendeklarasikan waktu dari $dari = date_create('1994-2-15 13:12:30');
. dan batas nya sampai waktu sekarang. yaitu $sampai = date_create();
.
Untuk mendapatkan waktu sekarang cukup kosongkan parameter dalam fungsi date_create()
.
Kemudian perhitungan selisih waktu akan dihitung pada $diff = date_diff($dari, $sampai);
.
Sampai di sini. semua outputnya telah tersimpan dalam variabel $diff
.
Selanjutnya tinggal kita tampilkan saja output yang kita inginkan.
Berikut format outputnya.
$diff->y
: Menampilkan selisih tahun$diff->m
: Menampilkan selisih bulan$diff->d
: Menampilkan selisih hari$diff->h
: Menampilkan selisih jam$diff->i
: Menampilkan selisih menit$diff->s
: Menampilkan selisih detik- $diff->days : Menampilkan total hari
Mengatur Format Output Selisih Waktu
Ada cara lain untuk menampilkan format output waktu. yaitu dengan method output()
yang sudah disedikan.
Contoh format output selisih waktu.
1 2 3 4 5 6 7 8 9 10 11 |
<h2><a href="https://www.malasngoding.com/menghitung-selisih-waktu-dengan-php">Menghitung Umur Dengan PHP - Malasngoding.com</a></h2> <?php $dari = date_create('1994-2-15 13:12:30'); // waktu awal. format penulisan tahun-bulan-tanggal jam:menit:detik $sampai = date_create(); // waktu sekarang. saat tutorial ini dibuat, yaitu : 30/1/2024 // menghitung perbedaan waktu. tanggal dari pada parameter pertama, tanggal sampai pada parameter kedua $diff = date_diff($dari, $sampai); echo $diff->format('Umur kamu : %Y tahun %m bulan %d hari'); ?> |
Perhatikan pada $diff->format('Umur kamu : %Y tahun %m bulan %d hari');
.
Dengan method format()
kita bisa mengatur format output yang ingin kita tampilkan. Dan formatnya di atur oleh format karakter masing-masing tentunya.

Menghitung durasi dengan selisih waktu php
Selain menghitung selisih waktu, kita juga bisa menghitung durasi dengan fungsi date_diff()
.
Menghitung Waktu Keterlambatan Dengan strtotime() PHP
Setelah teman-teman paham tentang cara penggunaan date_diff() untuk menghitung selisih waktu di PHP, sekarang kita akan mencoba membuat contoh kasus yang lebih spesifik.
Kita akan membuat pengecekan dan menghitung waktu keterlambatan siswa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<h2><a href="https://www.malasngoding.com/menghitung-selisih-waktu-dengan-php">Menghitung Waktu Keterlambatan Dengan PHP - Malasngoding.com</a></h2> <?php $jam_masuk = strtotime('2024-01-30 07:30:00'); $jam_datang = strtotime('2024-01-30 07:43:24'); $selisih = $jam_datang - $jam_masuk; if($selisih > 0){ $jam = floor($selisih / (60 * 60)); $menit = $selisih - ( $jam * (60 * 60) ); $detik = $selisih % 60; echo 'Budi terlambat : ' . $jam . ' jam, ' . floor( $menit / 60 ) . ' menit, ' . $detik . ' detik'; }else{ echo "Bagus, Budi tidak terlambat."; } ?> |
Pertama kita menyimpan waktu batas jam masuk sekolah, dan menyimpan waktu kedatangan si siswa.
$jam_masuk = strtotime('2024-01-30 07:30:00');
$jam_datang = strtotime('2024-01-30 07:43:24');
Kemudian kita dapatkan selisih waktu dengan melakukan pengurangan pada kedua waktu.
$selisih = $jam_datang - $jam_masuk;
dan terakhir kita periksa jika selisihnya.
1 2 3 4 5 6 7 8 9 |
if($selisih > 0){ $jam = floor($selisih / (60 * 60)); $menit = $selisih - ( $jam * (60 * 60) ); $detik = $selisih % 60; echo 'Budi terlambat : ' . $jam . ' jam, ' . floor( $menit / 60 ) . ' menit, ' . $detik . ' detik'; }else{ echo "Bagus, Budi tidak terlambat."; } |
Kita lihat hasilnya.

Maka tampil bahwa selisih waktu keterlambatan budi adalah 13 menit, 24 detik.
Tugas Latihan
Ada tugas yang menarik nih jika teman-teman merasa tertantang untuk melatih logika pemrogramannya. hehe..
Tugas teman-teman silahkan buat CRUD untuk data kedatangan bus menggunakan database MySQL. Buat inputan jadwal kedatangan bus dan inputan jadwal kedatangan bus di terminal.
Jika bus tiba terlambat di terminal, maka tampilkan selisih waktu keterlambatannya.
Jika teman-teman berhasil menyelesaikan tugas, segera publish di circle.
Referensi tambahan:
Tutorial Menarik Lainnya

Membuat Form Login Dengan PHP Tanpa Database

Membuat CRUD menggunakan Ajax PHP – Hapus Data


Membuat CRUD menggunakan Ajax PHP – Input Data

