Instagaram2.jpg

Bagi kita yang sering menghabiskan waktu di dunia maya pasti sudah sering nih melihat versi penanggalan seperti ini. Menurut beberapa penjelajah internet, kehadiran penulisan tanggal seperti ini lebih mudah untuk dibaca, ketimbang penulisan yang selama ini kita lihat.

Jadi biasanya kita selalau dihadapkan dengan format penanggalan diinternet, berupa jam, menit, detik, tanggal, bulan ataupun tahun yang biasa tertulis dengan format pemisah slash (“/”) atau dash (“-“).

Sebenarnya format baru ini telah lama dipakai dibeberapa platform online, seperti facebook, twitter, instagram ataupun situs berita pada umumnya. Nah, yang jadi permasalah gimana sih cara membuatnya?

Akan kita bahas dengan menggunakan bahasa pemrograman PHP.

Mari Merancang Alur

Pertama, kita akan lebih sering bermain dengan waktu atau tepatnya fungsi time() pada PHP. Fungsi ini akan menjadi referensi untuk komponen-komponen selanjutnya. komponen ini berupa data yang disimpan dalam vatiabel. Tentu masih tau dong cara membuat variabel pada PHP 🙂

  • $post_time, akan dipergunakan sebagai penampung tanggal posting instagram (atay artikel)
  • $now, sebagai penampung waktu sekarang atau satu dokumen diload
  • $time_diff, sebagai hasil selisih dari waktu sekarang dengan tanggal posting dan selanjutnya akan menjadi acuan untuk penentuan waktu posting
  • $seconds, merupakan variabel yang menampung detik dengan mereferensi dari $time_diff
  • $miuntes, $hours, $days, $weeks, $months, $years merupaka nreferensi dari setiap satuan waktu yang direpresentasekan dalam bentuk detik/second

Mari Koding

Pertama silahkan buat fungsi agar lebih mempermudah, tentunya kita tau pemakaaian format tanggal ini akan berulang.

function igTime($time)
{ 

}

Setelah membuat fungsi igTime($time), kita bisa lihat kita punya parameter $time. Parameter $time inilah yang akan menampung tanggal postingan nantinya.

function igTime($time)
{    
    $post_time = strtotime($time);
    $now = time();
    $time_diff = $now - $post_time;

    $seconds = $time_diff; 
    $minutes = round($seconds / 60); // 1m = 60 s
    $hours = round($seconds / 3600); // 1h = 3600 s
    $days = round($seconds / 86400); // 1d = 86400 s
    $weeks = round($seconds / 604800); // 1w = 604800 s
    $months = round($seconds / 2629440); // 1m = 2629440 s
    $years = round($seconds / 31553280); // 1y = 31553280 s
	
    if($seconds <= 60) { // 60 detik = nilai maksimal untuk 1 menit
        return 'Baru Saja';
    } 
    elseif ($minutes <= 60) { // 60 menit = nilai maksimal untuk 1 jam
		return $minutes . ' menit yang lalu';
    }
    elseif ($hours <= 24) { // 24 jam = nilai maksimal untuk 1 hari
        return $hours . ' jam yang lalu';
    }
    elseif ($days <= 7) { // 7 hari = nilai maksimal untuk 1 minggu
            return $days . ' hari yang lalu';
    }
    elseif ($weeks <= 4.3) { // 4.3 winggu = nilai maksimal untuk 1 bulan
		return $weeks . ' minggu yang lalu';
    }
    elseif ($months <= 12) { // 12 bulan = nilai maksimal untuk 1 tahun
		return $months . ' bulan yang lalu';
    }
    elseif ($years >= 1) { 
         return date("d/m/Y",  strtotime($time));
    }
}

Lanjut, setelah membaut fungsi dan memahami variabel pada pejalasan diatas kita masuk ke alur logika.

Sebenarnya, tidak rumit, logikanya begini..

” Jika artikel diupload kutang dari satumenit, maka munculkan baru saja. Jika diupload kurang dari satu jam maka munculkan maka munculkan x menit yang lalu. Jika diupload kurang dari 1 minggu dan lebih dari 24 jam, maka munculkan kemaren dan begitu seterusnya.. “

Nah, unutk memunculkan pada halaman yang diinginkan, kita tinggal memanggil fungsi igTime($time), tentu dengan tidak mengosongkan parameter $time.

<?php echo igTime('2019-07-29 15:43:00'); ?>

Maka, kode diatas harusnya memunculkan 6 menit yang lalu (per 2019-07-29 15:49:00)

Demikianlah cara untuk memunculkan format penanggalan yang sering kita jumpai disosial media. Silahkan bereksperimen

Sekian dan Terima kasih.

Azhari Sikumbang

Tulis dan bicarakan, agar lebih berguna. (Github | Linked in)
~ azhari@coretanit.com