Selamat Datang di Jagocoding.com

Please Login

Jagocoding.com adalah situs tutorial pemrograman no 1 di Indonesia yang berbasis jejaring sosial (social network). Bagikan tulisanmu ke semua penjuru dunia. Pelajari semua tutorial di sini untuk menjadi seorang yang "jago coding".

Member Login

Lupa password

Belum jadi Anggota?

PHP Membuat Keterangan Lamanya Waktu yang Berlalu pada PHP

by Cecep Yusuf (Cheyuz) ORI | May 3rd, 2012
  • Dilihat 1053
  • Komentar 4
  • Love 2

    Detail Tutorial

  • Tingkat Kesulitan: Standard
  • Waktu Pengerjaan: 5 menit
  • Tutorial Section: PHP Pure
  • Download PDF
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';

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.

Penulis

cheyuz
Cecep Yusuf ORI

Hi, my name is Cecep Yusuf. However, in the virtual world I am more likely to use the name Cheyuz, which is an abbreviation of two words "Cecep" and "Yusuf". I am founder of Jagocoding.com, u can view more of me in Cheyuz.com

Komentar dan Diskusi Komentar dan Diskusi

  • asheep

    kang buat aplikasi kaya gini. bisa di aplikasikan di program apa ya kang ????

    May 4th, 2012
    • cheyuz
      Cecep Yusuf

      bisa 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, 2012
  • foto-tamu

    Tanya

    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 16th
    • ariandi
      Ariandi Ryan Kahfi

      Sudah 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 16th

Berikan Komentar

Kamu masuk sebagai GUEST. Kamu dapat memberikan komentar, tetapi tidak dapat berlangganan, download PDF, dan membuat tutorial.
Klik di sini untuk login, GRATISS!

Komentar

Bold Italic Underline Insert Image Insert Link Insert Code Insert Smiley
  • Tentang Penulis

    • Lovers

      2 orang menyukai artikel ini.

    • asheep
    • ariandi
  • Daftar di situs Jagocoding.com
  • Tags

    #tutorial-cheyuz #function