PHP : Date & Time

Fungsi PHP Date()

Fungsi PHP date() mengonversi timestamp menjadi tanggal dan waktu yang lebih mudah dibaca.

Komputer menyimpan tanggal dan waktu dalam format yang disebut UNIX Timestamp, yang mengukur waktu beberapa detik sejak dimulainya masa Unix (tengah malam Greenwich jatuh pada 1 Januari 1970 yaitu 1 Januari 1970 00:00:00 GMT) .

Karena ini adalah format yang tidak praktis untuk dibaca manusia, PHP mengonversi timestamp menjadi format yang dapat dibaca oleh manusia dan tanggal dari notasi kalian menjadi timestamp yang dapat dipahami oleh komputer. Sintaks fungsi PHP date() dapat diberikan dengan:

date(format, timestamp)

Diperlukan parameter format dalam fungsi date() yang menentukan format tanggal dan waktu yang dikembalikan. Namun timestamp adalah parameter opsional, jika tidak disertakan maka tanggal dan waktu saat ini akan digunakan. Pernyataan berikut menampilkan tanggal hari ini:

<?php
$today = date("d/m/Y");
echo $today;
?>
Memformat Tanggal dan Waktu dengan PHP

Parameter format fungsi date() sebenarnya adalah string yang dapat berisi banyak karakter yang memungkinkan kalian untuk membuat string tanggal yang mengandung berbagai komponen tanggal dan waktu, seperti hari dalam seminggu, pagi atau sore, dll. Berikut adalah beberapa karakter pemformatan terkait tanggal yang umum digunakan dalam format string:

  • d – Mewakili hari dalam sebulan; dua digit dengan angka nol di depan (01 atau 31)
  • D – Mewakili hari dalam teks sebagai singkatan (Senin sampai Minggu)
  • m – Mewakili angka dalam bulan dengan angka nol di depan (01 atau 12)
  • M – Mewakili bulan dalam teks, disingkat (Jan sampai Dec)
  • y – Mewakili tahun dalam dua digit (08 atau 14)
  • Y – Mewakili tahun dalam empat digit (2008 atau 2014)

Bagian-bagian tanggal dapat dipisahkan dengan memasukkan karakter lain, seperti tanda hubung ( ), titik ( . ), Garis miring ( / ), atau spasi untuk menambahkan pemformatan visual tambahan.

<?php
echo date("d/m/Y") . "<br>";
echo date("d-m-Y") . "<br>";
echo date("d.m.Y");
?>

Kalian juga dapat menggunakan karakter berikut untuk memformat string waktu:

  • h – Mewakili jam dalam format 12 jam dengan angka nol di depan (01 hingga 12)
  • H – Mewakili jam dalam format 24 jam dengan angka nol di depan (00 hingga 23)
  • i – Mewakili menit dengan angka nol di depan (00 hingga 59)
  • s – Mewakili detik dengan nol di depan (00 hingga 59)
  • a – Mewakili huruf kecil antidi meridiem dan pos meridiem (am atau pm)
  • A – Mewakili huruf besar Antidi meridiem dan Post meridiem (AM atau PM)

Kode PHP dalam contoh berikut menampilkan tanggal dalam berbagai format:

<?php
echo date("h:i:s") . "<br>";
echo date("F d, Y h:i:s A") . "<br>";
echo date("h:i a");
?>
Fungsi PHP time()

Fungsi time() digunakan untuk mendapatkan waktu saat ini sebagai Unix timestamp (jumlah detik sejak awal masa Unix: 1 Januari 1970 00:00:00 GMT).

<?php
// Executed at March 05, 2014 07:19:18
$timestamp = time();
echo($timestamp);
?>

Contoh di atas menghasilkan output berikut.

Kita dapat mengonversi timestamp ini menjadi tanggal yang dapat dibaca manusia dengan mengirimkannya ke fungsi date() yang sudah dibahas sebelumnya.

<?php
$timestamp = 1394003958;
echo(date("F d, Y h:i:s", $timestamp));
?>

Contoh di atas menghasilkan output berikut.

Fungsi PHP mktime() 

Fungsi mktime() digunakan untuk membuat timestamp berdasarkan tanggal dan waktu tertentu. Jika tidak ada tanggal dan waktu yang disediakan, maka timestamp untuk tanggal dan waktu saat ini dikembalikan.

Sintaks fungsi mktime() dapat diberikan dengan:

mktime(hour, minute, second, month, day, year)

Contoh berikut menampilkan timestamp yang sesuai dengan pukul 3:20:12 siang hari pada 10 Mei 2014:

<?php
// Create the timestamp for a particular date
echo mktime(15, 20, 12, 5, 10, 2014);
?>

Contoh di atas menghasilkan output berikut.

Fungsi mktime() dapat digunakan untuk menemukan nama hari kerja yang sesuai dengan tanggal tertentu. Untuk melakukan ini, cukup gunakan karakter ‘l’ (huruf kecil ‘L’) dengan timestamp kalian, seperti dalam contoh berikut, yang menampilkan hari yang jatuh pada 1 April 2014:

<?php
// Get the weekday name of a particular date
echo date('l', mktime(0, 0, 0, 4, 1, 2014));
?>

Contoh di atas menghasilkan output berikut.

Fungsi mktime() juga dapat digunakan untuk menemukan tanggal tertentu di masa depan setelah periode waktu tertentu. Seperti dalam contoh berikut, yang menampilkan tanggal yang jatuh setelah 30 bulan dari tanggal saat ini?

<?php
// Executed at March 05, 2014
$futureDate = mktime(0, 0, 0, date("m")+30, date("d"), date("Y"));
echo date("d/m/Y", $futureDate);
?>

Contoh di atas menghasilkan output berikut.