Pada kesempatan yang baik ini kita akan membahas tentang fungsi time, mktime, dan strtotime pada PHP. Show Fungsi 1 dan 2 keduanya memiliki fungsi yang sama yaitu menghasilkan waktu dalam format timestamp. Beda keduanya adalah, pada fungsi 1, argumen yang diterima adalah string (teks) sedangkan pada fungsi 2, argumen yang digunakan adalah satuan waktu.Pengertian TimestampFungsi yang kita bahas disini semuanya berkaitan dengan timestamp, oleh karena itu, kita perlu tahu apa itu timestamp. Timestamp adalah istilah yang mengacu pada standar waktu berupa waktu dalam detik sejak epoch time: 1970-01-01 00:00:00, sehingga, angka 1 dalam timestamp berarti 1 detik sejak 1970-01-01 00:00:00 yaitu 1970-01-01 00:00:01, sedangkan 60 berarti 1970-01-01 00:01:00, dst.. Sebagai tambahan, kita juga perlu untuk memahami zona waktu pada PHP: Memahami Zona Waktu (Timezone) dan Selisih Waktu Pada PHP I. Fungsi Time Pada PHPFungsi 5 digunakan untuk mengambil waktu sekarang pada komputer server dalam format timestamp. Fungsi ini tidak memiliki argumen.Timestamp yang dihasilkan oleh fungsi 5 selalu pada waktu UTC (GMT +  0), meskipun konfigurasi zone waktu berubah ubah. Lebih jauh tentang timezone, dapat dibaca pada artikel: Memahami Zona Waktu (Timezone) dan Selisih Waktu Pada PHPContoh:
Hasil: Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 1484663772 Pada contoh diatas terlihat bahwa hasil dari fungsi 7 berubah setelah kita ubah timezone menjadi UTC (GMT + 0), namun timestamp yang dihasilkan fungsi 5 selalu sama yaitu: 9 (GMT + 0).Fungsi 5 ini bermanfaat untuk mendapatkan waktu kedepan atau kebelakang sejak waktu saat ini, misal:
Hasil: Waktu sekarang: 2017-01-17 15:48:34 1 menit kedepan: 2017-01-17 15:49:34 1 jam kedepan: 2017-01-17 16:48:34 1 hari kedepan: 2017-01-18 15:48:34 7 hari kedepan: 2017-01-24 15:48:34 Meskipun dapat mengkalkulasi waktu kedepan dan kebelakang, fungsi ini maksimal hanya dapat menghitung waktu dalam detik, tidak bisa menghitung 1 minggu kedepan atau 1 bulan kedepan. Untuk mengatasi hal tersebut, kita dapat menggunakan fungsi 1.III. Fungsi Mktime Pada PHPFungsi 2 (singkatan: make time) pada PHP juga digunakan untuk mendapatkan waktu tertentu dengan format timestamp. Format penulisannya adalah:
Biasanya, kita membaca argumen dari kiri kekanan. Nah, untuk fungsi 2 agar memudahkan memahami argumen yang digunakan, maka argumen dibaca dari kiri ke kanan (untuk argumen time: H:i:s) dan kanan ke kiri (untuk argumen date: Y-d-m)Penjelasan argumen:
Jika diperhatikan, fungsi 2 ini mirip dengan fungsi 5, bedanya, 2 lebih fleksibel karena dapat menerima banyak argumen.Contoh penggunaan fungsi mktime:
III. Fungsi Strtotime Pada PHPFungsi 1 (baca: string to time) pada PHP digunakan untuk menghasilkan waktu tertentu dengan format timestamp. Format penulisan fungsi 1 adalah sebagai berikut:Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637720 Penjelasan:
Argumen string dapat dikelompokkan menjadi dua yaitu Date Time format dan relative format. 1 Date Time formatUntuk string berbentuk date format, maka, penting diperhatikan ketika menggunakan separator, untuk separator slash (/), maka PHP akan membacanya dengan format 2, misal:01/10/2017 atau 1/10/2017 yang artinya tanggal: 10 Januari 2017.Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637723 Bagi kita di Indonesia, maka perlu berhati hati, karena kita lazim menggunakan format 3. Jika kita gunakan format tersebut, maka hasil yang diperoleh tidak sesuai dengan yang diharapkan.Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637724 Sedangkan untuk penggunaan dash (-), PHP akan membacanya dengan format 4, Misal: 10-1-2017 atau 10-01-2017:Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637725 Untuk mengatasi perbedaan diatas, disarankan untuk selalu menggunakan standar waktu ISO 8601 dengan format YYYY-MM-DD. Misal: Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637726 sedangkan untuk time format, gunakan format H:i:s (jam:menit:detik), misal: Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637727 2 Relative formatRelative format berupa kata atau kalimat dalam bahasa Inggris yang mencerminkan waktu tertentu, misal: “now”, “yesterday”, dll. Disamping itu, relative format ini juga dapat digabungkan dengan date time format, misal: “yesterday 18:21” Relative format dapat berbentuk simbol dan day-based notation. Adapun untuk simbol adalah sebagai berikut: DeskripsiKeteranganNama hari‘sunday’ | ‘monday’ | ‘tuesday’ | ‘wednesday’ | ‘thursday’ | ‘friday’ | ‘saturday’Nama hari (3 digit)‘sun’ | ‘mon’ | ‘tue’ | ‘wed’ | ‘thu’ | ‘fri’ | ‘sat’Urutan‘first’ | ‘second’ | ‘third’ | ‘fourth’ | ‘fifth’ | ‘sixth’ | ‘seventh’ | ‘eighth’ | ‘ninth’ | ‘tenth’ | ‘eleventh’ | ‘twelfth’Reltext‘last’ | ‘next’ | ‘previous’ | ‘this’Unit*‘year’ | ‘month’ | ‘day’ | ‘hour’ | ‘minute’ | ‘min’ | ‘second’ | ‘sec’ *) untuk Unit, jika jamak maka ditambahkan akhiran s, misal: 1 month, jamaknya: 2 months Contoh: Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637728 Selain simbol, terdapat notasi berdasarkan hari (day-based notation), diantaranya: FomatKeterangan‘today’ | ‘midnight’ | ‘yesterday’ | ‘tomorrow’Waktu akan berubah menjadi 00:00:00‘now’Menunjukkan waktu sekarang (diabaikan)‘first day of’Misal: ‘first day of next month’ atau ‘first day of may 2017’‘last day of’Misal: ‘last day of previous month’number [spasi] unit atau week.Misal: ‘1 day’ atau sama dengan ‘+1 day’, ‘-1 day’, ‘+5 weeks’‘ago’Misal: ‘2 days ago’, ‘2 months 1 day ago’, ‘1 hour ago’nama hariMenghasilkan hari berikutnya. Misal: jika hari ini Kamis, maka ‘monday’ akan menghasilkan senin berikutnyaReltext [spasi] nama hari [spasi] weekMisal: ‘Monday last month’ menghasilkan hari Senin terakhir pada bulan sekarang. Penting diperhatikan bahwa semua format, baik simbol maupun day-based notation semua ditulis menggunakan huruf kecil dan bersifat case sensitive (membedakan huruf besar), sehingga, jika ‘last day of’ kita tulis dengan ‘Last day of’, maka, hasil yang diperoleh tidak sesuai yang diharapkan Fungsi waktu diatas berguna untuk berbagai keperluan diantaranya untuk mengetahui hari terakhir suatu bulan, menghitung batas waktu suatu kegiatan, mencari popular post 24 jam terakhir, dll Date: 2017-01-17 15:36:12 Timestamp: 1484663772 Date: 2017-01-17 14:36:12 Timestamp: 14846637729 Hasil: 0IV. KesimpulanPHP menyediakan banyak sekali fungsi terkait waktu, tiga diantaranya adalah 5, 1, dan 2, ketiganya memiliki kelebihan sendiri-sendiri dan dapat saling melengkapi.Ketiga fungsi tersebut wajib dikuasai, sebagai acuan kapan menggunakannya, pertimbangkan hal berikut:
Berdasarkan hal tersebut diatas, saran saya, selalu pertimbangkan penggunaan fungsi 1, sebelum menggunakan fungsi lainnya.Demikian pembahasan mengenai fungsi 5, 2, dan 1 pada PHP, semoga bermanfaat.Subscibe NowSuka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun. |