Skip to main content

Mencari Selisih Tanggal di PHP


Ini adalah panduan sederhana tentang bagaimana mencari atau menghitung selisih antara dua tanggal di PHP. Pastikan untuk mencoba contoh di bawah jika Anda baru mengenal topik ini. Hal ini sering kita jumpai pada kasus-kasus pembuatan aplikasi berbasis web (PHP) seperti:
  1. Menghitung waktu keterlambatan pada aplikasi pencatatan presensi pegawai
  2. Menghitung umur karyawan dan masa kerja pada sistem kepegawaian
  3. Menghitung lama pengerjaan project pada sistem manajemen project
  4. Mencari atau menghitung waktu keterlambatan atau peminjaman pada sistem pustaka
  5. Mencari atau Menghitung durasi peminjaman pada sistem rental mobil/motor 
  6. dan pada kasus-kasus pembuatan sistem/aplikasi lainnya

Mencari selisih tanggal di PHP menggunakan kelas DateTime

Untuk mencari atau menghitung jumlah selisih hari dari dua tanggal PHP kita akan menggunakan DateTime class dengan fungsi diff, cara ini sangat mudah karena lebih bersih dan menyediakan antarmuka OO (Object Oriented). Kelas ini tersedia pada PHP dengan versi 5.3+

Misalnya, jika kita ingin mendapatkan perbedaan atau selisih dalam hitungan hari menggunakan kelas DateTime, kita dapat melakukan hal berikut:


[$tanggal1 = new DateTime("2011-07-06"); $tanggal2 = new DateTime(); $perbedaan = $tanggal2->diff($tanggal1)->format("%a"); echo $perbedaan;]

Untuk mengubah selisih tanggal menjadi format yang dapat kita pahami yang terdiri dari tahun, bulan, hari, jam dan menit:


[$tanggal = '2005-09-01 09:02:23'; $tanggal = new DateTime($tanggal); $sekarang = new DateTime(); $perbedaan = $tanggal->diff($sekarang); //gabungkan echo $perbedaan->y.' selisih tahun.
'; echo $perbedaan->m.' selisih bulan.
'; echo $perbedaan->d.' selisih hari.
'; echo $perbedaan->h.' selisih jam.
'; echo $perbedaan->i.' selisih menit.
';]

Dengan menggunakan kelas DateTime anda bisa mencari atau menghitung selisih tahun, bulan, hari jam dan menit dari dua buah tanggal. Seperti yang Anda lihat, kelas DateTime cukup mudah setelah Anda mengetahui penggunaannya!

Mencari selisih tanggal di PHP menggunakan fungsi Strtotime

untuk mencari atau menghitung selisih tanggal dan waktu di PHP pada versi PHP 5.3.0 kebawah, kita dapat menggunakan fungsi strtotime (), walaupun terlihat jadul, fungsinya tetap efektif. Sebagai contoh:

[$tanggal_lahir = strtotime('1989-01-18'); $sekarang = time(); // Waktu sekarang $diff = $sekarang - $tanggal_lahir; echo 'umur anda adalah ' . floor($diff / (60 * 60 * 24 * 365)) . ' Tahun'; // Umur anda dalam hitungan tahun echo 'umur anda adalah ' . floor($diff / (60 * 60 * 24)) . ' Hari'; // Umur anda dalam hitungan hari]

Pada contoh di atas, fungsi strtotime () menghasilkan format timestamp. Timestamp adalah jenis format waktu dalam bentuk hitungan detik terhitung sejak (1970-01-01 00:00:00), sehingga stempel waktu 1 berarti 1 detik sejak sekarang atau 1970-01-01 00: 00:01.

Karena hasilnya dalam hitungan detik, maka untuk menghitung selisih waktu, kita harus membaginya dengan hitungan detik, pada contoh di atas, untuk menghitung hari, kita menggunakan perkalian detik, menit dan jam (60 x 60 x 24).

Selain dari dua cara sebelumnya, kita akan membahas satu cara lagi. Metode ini memiliki beberapa kelebihan, yaitu bisa menghitung selisih jam, menit, detik lebih mudah, misalnya:

[$start = strtotime('2017-07-12 10:05:25'); $end = strtotime('2017-07-13 11:07:33'); $diff = $end - $start; $hours = floor($diff / (60 * 60)); $minutes = $diff - $hours * (60 * 60); echo 'Selisih Waktu: ' . $hours . ' Jam, ' . floor( $minutes / 60 ) . ' Menit';]

Jika menemukan kendala mari kita diskusikan.


Comments

  1. waduh gan keren nih, jadi pengen belajar PHP eheh

    ReplyDelete
  2. Eh ada Harumin... sama-sama Harumin.. :)

    ReplyDelete
  3. Mengenal Sublime Text, Salah Satu Editor Kode Terbaik ==> https://bit.ly/3jhy39f

    ReplyDelete

Post a Comment

Popular posts from this blog

Tutorial SQL Injection Menggunakan SQLMap

Kali ini kita akan membahas tutorial hacing dengan teknik SQL Injection menggunakan tool SQLMap untuk melakukan hacking atau serangan pada website berbasis data dengan tujuan untuk menemukan kerentanan keamanan pada website tersebut. SQL Injection adalah teknik injeksi code yang digunakan untuk melakukan serangan pada aplikasi web berbasis data di mana pernyataan malicious SQL dimasukkan ke dalam entri untuk di eksekusi (misalnya untuk menampilkan konten database ke penyerang). SQL injection dapat mengeksploitasi kerentanan keamanan pada perangkat lunak aplikasi, misalnya saat user salah melakukan filter inputan untuk pengiriman karakter yang disematkan dalam pernyataan SQL atau inputan user tidak diketik dengan benar dan tanpa diduga dieksekusi. SQL Injection lebih dikenal sebagai vektor serangan untuk sebuah situs web namun juga dapat digunakan untuk menyerang semua jenis database SQL. Apa itu SQLMap SQLMap adalah salah satu tool otomatis untuk melakukan SQL Injection yang

Penjumlahan dan pengurangan tanggal di PHP

Penjumlahan (tambah) dan pengurangan (kurang) tanggal di PHP sering  kita jumpai di beberapa kasus pembuatan sistem seperti pembuatan fitur peminjaman, perizinan, pemesanan dan lain-lain. Kali ini kita akan membahas bagaimana  suatu tanggal dapat di tambah atau di kurangi dengan hari, bulan dan tahun. Ok langsung saja kita bahas materinya!

Cara membuat Hak Akses (Privileges) pada user SQL Server (Grant dan Revoke)

Pada tutorial kali ini kita akan belajar bagaimana cara membuat atau memberi grant atau revoke hak akses (Privileges) pada user di SQL Server menggunakan syntax Transact SQL (T-SQL). Anda dapat memberi GRANT dan REVOKE hak akses pada berbagai objek database di SQL Server. Kali ini kita akan melihat bagaimana memberi dan menghapus hak akses pada tabel di SQL Server. Memberikan permissions dan menghapus permissions tidak terlalu sulit dilakukan di dalam SQL Server, hanya butuh beberapa waktu untuk menentukan permissions apa yang harus diterapkan. Sebelumnya anda harus membuat user dahulu pada SQL Server, setelah itu baru kita bisa memberi Hak Akses. Berikutnya pastikan anda sudah membuat atau menjalankan script dibawah ini. [USE [nama_database] GO CREATE USER [nama_user] FOR LOGIN [nama_user]] Grant Hak Akses (Privileges) pada  tabel Anda dapat memberi (Grant) berbagai hak akses ke tabel pada user. Hak akses ini bisa berupa kombinasi SELECT, INSERT, UPDATE, DELETE, REFERENCES