Membuat Keterangan Lamanya Waktu yang Berlalu pada PHP

Keterangan lamanya waktu yang berlalu seperti waktu-waktu yang kita lihat pada beberapa situs, terutama situs jejaring sosial seperti Facebook, Twitter, dan sebagaianya. Situs yang sering melakukan updating biasanya membutuhkan format waktu yang bentuknya seperti ini:
  • 2 menit yang lalu
  • 6 jam yang lalu
  • 2 minggu yang lalu
  • 3 bulan yang lalu
  • 1 tahun yang lalu
Dengan bentuk seperti itu, orang dapat dengan mudah memperkirakan lama tidaknya waktu orang memposting artikel/komentar dibandingkan dengan melihat tanggal secara mutlak.

Ok, bagaimana cara membuatnya?

Pertama-tama, buatlah sebuah function bernama time_since.php dan simpan di dalam suatu folder. Isikan di dalam file tersebut kode di bawah ini:


<?php

function time_since($original)

{

  date_default_timezone_set('Asia/Jakarta');

  $chunks = array(

      array(60 * 60 * 24 * 365, 'tahun'),

      array(60 * 60 * 24 * 30, 'bulan'),

      array(60 * 60 * 24 * 7, 'minggu'),

      array(60 * 60 * 24, 'hari'),

      array(60 * 60, 'jam'),

      array(60, 'menit'),

  );

  $today = time();

  $since = $today - $original;

  if ($since > 604800)

  {

    $print = date("M jS", $original);

    if ($since > 31536000)

    {

      $print .= ", " . date("Y", $original);

    }

    return $print;

  }

  for ($i = 0, $j = count($chunks); $i < $j; $i++)

  {

    $seconds = $chunks[$i][0];

    $name = $chunks[$i][1];

    if (($count = floor($since / $seconds)) != 0)

      break;

  }

  $print = ($count == 1) ? '1 ' . $name : "$count {$name}";

  return $print . ' yang lalu';

}

?>

Setelah itu, buatlah sebuah file php misalnya test.php di dalam folder yang sama dengan function di atas. Setelah itu, load file time_since.php dengan menggunakan kode ini:

<?php

include 'time_since.php';

echo time_since(strtotime('2013-07-21 17:00:00'));

?>

Sebuah tanggal lengkap dengan format seperti time di MySQL, misalnya: "2013-07-21 17:00:00".

Penjelasannya, function strtotime adalah function untuk mengubah format tanggal yang berupa string menjadi sebuah timestamp untuk php, yang mana timestamp itu adalah jumlah detik dari tanggal 1 Januari 1970 jam 00:00:00 hingga sekarang, wow.. Setelah berubah jadi format itu, barulah kita pakai function time_since di atas. Dan browser pun akan menampilkan waktu berapa lama waktunya dari sekarang.

Selamat mencoba ....

Sumber : jagocoding

No comments

Isilah komentar disini...

Powered by Blogger.