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';
Kemudian masukkan sebuah tanggal lengkap dengan format seperti time di MySQL, misalnya: "2012-05-03 17:00:00". Kemudian tambahkan kode berikut:
echo time_since(strtotime('2012-05-03 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. Percobaan saya dilakukan pada tanggal 3 Mei 2012 pukul 23:11, maka browser akan menampilkan tulisan "7 jam yang lalu".
Tutorial singkat, padat, dan berguna, hehehe..
~ cheyuz@jagocoding.com
Stand by with me,
Follow saya supaya kamu tetap berlangganan dengan artikel saya.



kang buat aplikasi kaya gini. bisa di aplikasikan di program apa ya kang ????
May 4th, 2012bisa di blog atau apapun yang postingannya sering update, misalnya social network, buku tamu, dsb..
Web ini juga pake itu buat tanggalnya.. liat aja.
May 4th, 2012Tanya
Salam, Mau tanya, saya coba aplikasikan script di atas, jika waktu menunjukkan 10 hari ke atas, maka tidak terdeteksi sekian hari yang lalu, atau sekian bulan yang lalu, tetapi muncul tanggal, contoh Mar 3td. Kenapa ya?
Mar 16thSudah ketemu, Script seperti di bawah ini dihapus. if ($since > 604800) { $print = date("M jS", $original); if ($since > 31536000) { $print .= ", " . date("Y", $original); } return $print; } Terima kasih.
Mar 16thBerikan Komentar
Klik di sini untuk login, GRATISS!