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:
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';
}
?>
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'));
?>
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
Leave a Comment