Cara Membuat Waktu Telah Berlalu Menggunakan PHP

Afid Arifin – Waktu telah berlalu atau dikenal dengan time ago adalah suatu istilah yang sering digunakan untuk menggambarkan fungsi atau metode yang menghitung jumlah waktu yang telah berlalu sejak tanggal tertentu.

Cara Membuat Waktu Telah Berlalu Menggunakan PHP

Ini bisa berguna untuk menampilkan berapa lama waktu posting atau komentar, atau untuk menunjukkan berapa lama seorang pengguna terakhir aktif. Hasilnya akan muncul seperti 5 menit yang lalu, 2 hari yang lalu dan seterusnya.

Konsep Time Ago atau Waktu Telah Berlalu

Sebelum kita membuat program waktu telah berlalu menggunakan kode PHP, terlebih dahulu kita mengetahui konsep dasar dari fungsi time ago yang akan kita buat menggunakan PHP.

Konsepnya sederhana, hanya menggunakan fungsi time() untuk mendapatkan timestamp saat ini, kemudian dikurangi timestamp dari tanggal yang diberikan untuk mendapatkan perbedaan waktu.

Kemudian, hasilnya dikonversi ke dalam format yang mudah dibaca oleh manusia, seperti 5 menit yang lalu, 2 hari yang lalu, dan seterusnya selama fungsi time() terus berjalan maka akan terus melakukan update.

Cara Membuat Time Ago Menggunakan PHP

Sebelum membuat fitur waktu telah berlalu atau time ago menggunakan PHP, silahkan kalian siapkan beberapa file baru berikut.

  1. Buat file dengan nama time_ago.php.
  2. Buat file dengan nama index.php.

Pastikan kedua file ini berada dalam satu folder agar lebih mudah dipelajari oleh kalian. Baiklah, langsung saja kalian copy kode PHP berikut lalu pastekan ke dalam file time_ago.php yang telah dibuat sebelumnya.

<?php
function time_ago(int $time) {
  /**
   * Deteksi: Tahun, Bulan Minggu, Hari, Jam, Menit.
   */
  $waktu = [
    [60 * 60 * 24 * 365, 'tahun yang lalu'],
    [60 * 60 * 24 * 30, 'bulan yang lalu'],
    [60 * 60 * 24 * 7, 'minggu yang lalu'],
    [60 * 60 * 24, 'hari yang lalu'],
    [60 * 60, 'jam yang lalu'],
    [60 * 60, 'menit yang lalu'],
  ];

  /**
   * Kurangi waktu sekarang dengan waktu yang di dapat dari $time.
   */
  $hitung_waktu = time() - $time;

  /**
   * Jika kurang dari 60 detik maka tampilkan `Baru Saja`.
   */
  if($hitung_waktu < 60) {
    return 'Baru Saja';
  } elseif($hitung_waktu > 604800) {
    return date('Y-m-d H:i', $time);
  }

  /**
   * Mendapatkan nilai dari $waktu.
   */
  for($i = 0; $i <= count($waktu); $i++) {
    $nilai_waktu  = $waktu[$i][0];
    $nama_waktu = $waktu[$i][1];

    /**
     * Hitung waktu
     */
    if(($hitung = floor($hitung_waktu / $nilai_waktu)) != 0) {
      break;
    }
  }

  return ($hitung == 1) ? '1 '.$nama_waktu : "$hitung {$nama_waktu}";
}
?>

Pada kode PHP time ago di atas sudah saya lengkapi dengan penjelasan singkat mengenai alur dari tutorial kali ini. Berikutnya silahkan copy kan kode PHP berikut lalu pastekan ke dalam file index.php yang telah dibuat sebelumnya.

<?php
  require_once 'time_ago.php';
  echo time_ago(time()); // Baru Saja
  echo time_ago(time() - 604800); // 1 minggu yang lalu
?>

Cara menggunakan kode php yang telah dibuat adalah seperti kode diatas yakni dengan menanggil function time_ago() dengan satu parameter dan argumen yang harus diisi dengan tipe data integer timestamp.

Sebagai contoh, kode diatas saya ingin menampilkan waktu Baru Saja cukup dengan memanggil time_ago(time()) dan 1 minggu yang lalu dengan memanggil time_ago(time() – 604800);.

Penutup

Cara membuat waktu telah berlalu atau time ago dengan PHP tidak terlalu sulit bahkan tidak sampai memakan ratusan baris kode. Cukup mainkan fungsi bawaan PHP time() maka kita dapat membuat suatu yang luar biasa.

Demikian tutorial PHP pada kesempatan kali ini, silahkan dicoba dan apabila ingin ditanyakan, silahkan tanyakan di kolom komentar.

Bagikan Ke

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *