Cara menggunakan date now php

Cara menggunakan date now php

Cara menampilkan tanggal dan waktu sekarang pada bahasa pemrograman PHP 
Sebagian besar semua aplikasi website pasti menggunakan dan menampilkan tanggal dan waktu di dalam program aplikasinya. Di dalam PHP kita akan menggunakan fungsi date() untuk menampilkan tanggal maupun waktu sekarang. Format tanggal dalam fungsi date() juga bisa di parameternya yang ada di dalam tanda kurung fungsi date(). Fungsi date ini gunakan untuk mengambil, menampilkan dan menyimpan tanggal.

Misal kita ingin membuat sebuah aplikasi dengan menyimpan aplikasi tanggal sekarang secara otomatis maka kita bisa menggunakan fungsi date(). Contoh pada saat kita membuat sebuah artikel pada aplikasi CMS wordpress maka saat kita menyimpan postingan tersebut maka tanggal secara otomatis akang ikut tersimpan dan menampilkan nya sesaui dengan tanggal saat kita membuat artikel tersebut. Fungsi date() akan mengambil data tanggal yang sesuai digunakan oleh server PHP itu sendiri.

Pada tutorial kali ini kita akan membahas lebih lanjut fungsi date(). Bagaimana menampilkan tanggal dan waktu sekarang, mengatur output waktu dan tanggal yang ingin di tampilkan sesuai dengan keinginan, seperti kita ingin menampilkan tanggal bulan tahun atau tahun bulan tanggal, baik menampilkannya dalam bentuk angka maupun huruf bentuk 4 digit maupun 2 digit. Berikut contoh fungsi date() dalam menampilkan tanggal di PHP

<?php
date("Y-d-m H:i:s");
?>

Pada parameter Y-m-d digunakan untuk menampilkan tanggal dan parameter H:i:s digunakan untuk menampilkan waktu. Dari parameter tersebut kita bisa mengubah output pada tanggal atau waktu sesuai dengan keinginan.

Cara Menampilkan Tanggal Sekarang Dalam PHP.

Berikut format karakter tanggal yang dapat digunakan dalam PHP.

Karakter Keterangan
l (Huruf L Kecil) Menampilkan nama hari ( bentuk huruf )
Menampilkan nama hari ( bentuk huruf 3 digit )
Menampilkan tanggal ( bentuk angka )
Menampilkan bulan  ( dalam huruf 3 digit )
Menampilkan nama bulan ( dalam bentuk angka )
Menampilkan tahun ( bentuk angka 4 digit )
Menampilkan tahun ( dua digit angka terakhir )

Kalian juga bisa menambahkan karakter .(titik) ,(koma) /(garis miring) -(strip) sesuai dengan keinginan tampilan kalian.

Contoh :

<?php 
echo date('Y-m-d');
echo "<br/>";
echo date('l, d / m / Y');
echo "<br/>";
echo date('d - M - y');
echo "<br/>";
echo date('D - M / Y');
?>

Maka Hasilnya seperti dibawah ini:

Cara menggunakan date now php

Cara Menampilkan Waktu Sekarang dalam PHP

Berikut format karakter waktu yang dapat digunakan dalam PHP.

Karakter Keterangan
s Untuk menampilkan detik saat ini
i Untuk menampilkan menit sekarang
h Untuk menampilkan jam sekarang
H Untuk menampilkan format jam bentuk 24 jam
a Untuk menampilkan waktu AM atau PM sekarang

Dalam penulisan format waktu kita juga bisa menambahkan karakter seperti pada format tanggal sesuai dengan keinginan.

Contoh :

<?php 
date_default_timezone_set('Asia/Jakarta'); // Zona Waktu indonesia
echo date('h:i:s a'); // menampilkan jam sekarang
echo "<br/>";
echo date('l, d-m-Y  H:i:s'); //kombinasi jam dan tanggal
?>

Maka hasilnya :

Cara menggunakan date now php

Pada script date_default_timezone_set('Asia/Jakarta') di gunakan untuk mengubah zona waktu menjadi zona waktu Indonesia. kalian juga bisa mengubah zona waktu sesuai dengan zona waktu negara lain dengan mengubah parameter zona waktunya. Zona waktu biasanya digunakan untuk menghitung selisih waktu antar wilayah.

Table of Contents

  • I. Membuat Format Tanggal Indonesia Dengan PHP
  • II. Format Tanggal Indonesia Dengan PHP – Menambahkan Nama Hari
  • III. Format Tanggal Indonesia Dengan PHP - Mengambil Data Dari Database
  • IV. Cara Lebih Singkat
  • Subscibe Now

Tutorial kali ini akan membahas bagaimana merubah format tanggal di php.

Disini akan dijelaskan dengan dua cara.

Cara pertama
<?php
$tgl = "2020-01-05";

echo date("d-m-Y",strtotime($tgl));

Cara pertama menggunakan fungsi date karena fungsi date menerima parameter dalam bentuk detik kita mengubah tanggal yang akan diformat menggunakan strtotime.Cara pertama memiliki kelemahan karena tidak bisa mengkonversi tanggal dibawah 1 Januari 1970.

Cara Kedua
<?php
$tgl = new DateTime("2020-01-05");
echo $tgl->format('d-m-Y');

Cara kedua menggunakan objek DateTime,cara ini mendukung tanggal dibawah 1 Januari 1970.

Untuk keseluruhan format yang didukung oleh php bisa dilihat disini (https://www.php.net/manual/en/function.date.php).

Pada kesempatan kali ini kita akan membahas cara membuat format tanggal indonesia dengan PHP.

Biasanya, tanggal standar yang disimpan pada database berformat YYYY-MM-DD, misal 2016-03-20, sedangkan ketika ditampilkan pada web biasanya menggunakan nama bulan misal 20 Maret 2016.

PHP sendiri telah menyediakan banyak fungsi untuk mengubah format tanggal, namun, semua format tanggal tersebut berbahasa Inggris, misal, kita ubah tanggal diatas dengan menyertakan nama bulan

<?php
echo date('d F Y', strtotime('2016-03-20')); // Hasil 20 March 2016

// Tanggal sekarang
echo date('d F Y'); // Hasil 17 December 2016

I. Membuat Format Tanggal Indonesia Dengan PHP

Karena kita tidak bisa menggunakan fungsi bawaan PHP secara penuh,  maka, untuk untuk mengubah nama bulan ke bahasa Indonesia, kita harus melakukannya secara “semi manual”, dimana kita mendefinisikan nama bulan satu persatu.

Ide dasarnya adalah sebagai berikut:

$bulan = array (1 =>   'Januari',
			'Februari',
			'Maret',
			'April',
			'Mei',
			'Juni',
			'Juli',
			'Agustus',
			'September',
			'Oktober',
			'November',
			'Desember'
		);

echo $bulan[3]; // Maret

Pada contoh diatas, kita menggunakan array yang berisi nama bulan.

Seperti pada pembahasan tentang array, index awal dari array bisa angka 0 atau 1. Pada contoh diatas, kita buat index dengan nilai awal 1, sehingga sama dengan bilangan bulan (1 s.d 12);

Selanjutnya, agar script tidak ditulis berulang ulang, maka kita perlu memasukkannya ke dalam fungsi, sehingga, nantinya kita cukup memanggil nama fungsi tersebut:

function tanggal_indo($tanggal)
{
	$bulan = array (1 =>   'Januari',
				'Februari',
				'Maret',
				'April',
				'Mei',
				'Juni',
				'Juli',
				'Agustus',
				'September',
				'Oktober',
				'November',
				'Desember'
			);
	$split = explode('-', $tanggal);
	return $split[2] . ' ' . $bulan[ (int)$split[1] ] . ' ' . $split[0];
}

echo tanggal_indo('2016-03-20'); // 20 Maret 2016

Penjelasan:

  • Pertama tama, dengan fungsi explode kita pecah tanggal berdasarkan tanda dash (-). Hasil pemecahan tersebut berupa array, selanjutnya, kita simpan array tersebut pada variabel $split. Contoh cara kerja fungsi explode:
  • <?php
    $tanggal = '2016-03-20';
    $split 	 = explode('-', $tanggal);
    echo '<pre>'; print_r($split);
    
    /* Hasil:
    Array
    (
        [0] => 2016
        [1] => 03
        [2] => 20
    )*/
  • Selanjutnya, dengan statemen return, kita kirim hasil ke pemanggil fungsi.

    Karena menggunakan 2 digit bulan, maka kita perlu mengubahnya menjadi satu digit, salah satunya dengan mengubah tipe datanya menjadi integer: dengan type casting ( (int) $split[1] ) atau bisa dengan perkalian ( 1 * $split[1] )

Lebih lanjut:

  • Tentang fungsi: Memahami Fungsi Pada PHP dan Cara Membuatnya
  • Tentang statemen return pada fungsi: Memahami Statemen Return Pada PHP
  • Tentang array: Memahami Array Pada PHP

II. Format Tanggal Indonesia Dengan PHP – Menambahkan Nama Hari

Selanjutnya, pada kondisi tertentu kita perlu untuk menambahkan nama hari pada tanggal tersebut. Untuk keperluan tersebut, PHP juga telah menyediakan format karakternya, yaitu menggunakan l (huruf kecil dari L), misal:

<?php
// Hari ini:
echo date('l, d F Y'); // Hasil: Saturday, 17 December 2016

Lagi lagi nama hari juga menggunakan bahasa Inggris, untuk mengubahnya ke dalam bahasa Indonesia, lagi lagi tidak ada cara lain kecuali kita menuliskan nama hari satu per satu.

Ide dasar script yang akan kita buat:

<?php
$hari = array ( 1 =>    'Senin',
			'Selasa',
			'Rabu',
			'Kamis',
			'Jumat',
			'Sabtu',
			'Minggu'
		);

// Misal hari ini adalah sabtu
echo date('N'); // Hasil 6
echo $hari[ date('N') ]; // Sama seperti echo $hari[6], hasil: Sabtu

// Contoh tanggal 20 Maret 2016 adalah hari Minggu
$num = date('N', strtotime('2016-03-20')); 
echo $num; // Hasil 7
echo $hari[$num]; // Hasil: Minggu

Pada script diatas, kita menggunakan format N untuk mendapatkan nomer urut dari hari yang dimulai dari 1 untuk Senin, dan terakhir 7 untuk Minggu.

Selanjutnya, mari kita perbarui fungsi tanggal_indo sehingga dapat menampilkan nama hari:

<?php
function tanggal_indo($tanggal, $cetak_hari = false)
{
	$hari = array ( 1 =>    'Senin',
				'Selasa',
				'Rabu',
				'Kamis',
				'Jumat',
				'Sabtu',
				'Minggu'
			);
			
	$bulan = array (1 =>   'Januari',
				'Februari',
				'Maret',
				'April',
				'Mei',
				'Juni',
				'Juli',
				'Agustus',
				'September',
				'Oktober',
				'November',
				'Desember'
			);
	$split 	  = explode('-', $tanggal);
	$tgl_indo = $split[2] . ' ' . $bulan[ (int)$split[1] ] . ' ' . $split[0];
	
	if ($cetak_hari) {
		$num = date('N', strtotime($tanggal));
		return $hari[$num] . ', ' . $tgl_indo;
	}
	return $tgl_indo;
}
echo tanggal_indo ('2016-03-20'); // Hasil: 20 Maret 2016;
echo tanggal_indo ('2016-03-20', true); // Hasil: Minggu, 20 Maret 2016

Pada contoh diatas, kita tambahkan argumen baru pada fungsi yaitu $cetak_hari dengan nilai default false. Argumen tersebut sebagai opsi apakah nantinya fungsi menghasilkan nama hari atau tidak.

III. Format Tanggal Indonesia Dengan PHP - Mengambil Data Dari Database

Dalam praktek, format tanggal Indonesia ini lebih sering digunakan ketika kita ingin menampilkan data tanggal dari database. Misal kita memiliki tabel artikel dengan data sebagai berikut:

+------------+-------------------------------------+---------------------+
| id_artikel | judul_artikel                       | tanggal_terbit      |
+------------+-------------------------------------+---------------------+
|          1 | Format Tanggal Indonesia Dengan PHP | 2016-10-12 08:53:27 |
|          2 | Memahami Return Pada PHP            | 2016-11-10 11:22:20 |
|          3 | Memahami Fungi Pada PHP             | 2016-12-01 15:54:37 |
+------------+-------------------------------------+---------------------+

Tabel tersebut berada di dalam database website.

Selanjutnya, mari kita tampilkan data tersebut menggunakan format tanggal Bahasa Indonesia dengan menggunakan fungsi tanggal_indo yang telah kita buat sebelumnya.

Script yang kita gunakan:

<?php
// FUNGSI
function tanggal_indo($tanggal, $cetak_hari = false)
{
	$hari = array ( 1 =>    'Senin',
				'Selasa',
				'Rabu',
				'Kamis',
				'Jumat',
				'Sabtu',
				'Minggu'
			);
			
	$bulan = array (1 =>   'Januari',
				'Februari',
				'Maret',
				'April',
				'Mei',
				'Juni',
				'Juli',
				'Agustus',
				'September',
				'Oktober',
				'November',
				'Desember'
			);
	$split 	  = explode('-', $tanggal);
	$tgl_indo = $split[2] . ' ' . $bulan[ (int)$split[1] ] . ' ' . $split[0];
	
	if ($cetak_hari) {
		$num = date('N', strtotime($tanggal));
		return $hari[$num] . ', ' . $tgl_indo;
	}
	return $tgl_indo;
}

// AMBIL DATA DARI DATABASE
$con = @mysqli_connect('localhost', 'root', '', 'tutorial');

if (!$con) {
    echo "Error: " . mysqli_connect_error();
	exit();
}

$sql 	= 'SELECT * FROM artikel';
$query 	= mysqli_query($con, $sql);

// TAMPILKAN DATA
echo '<table>
			<thead>
				<tr>
					<th>Judul Artikel</th>
					<th>Tanggal Terbit</th>
				</tr>
			</thead>
			<tbody>';
			
while ($row = mysqli_fetch_array($query))
{
	// Ubah tanggal menjadi yyyy-mm-dd
	$tanggal = date('Y-m-d', strtotime($row['tanggal_terbit']));
	
	echo '<tr>
			<td>' . $row['judul_artikel'] . '</td>
			<td>' . tanggal_indo($tanggal, true) . '</td>
		</tr>';
}

echo '</tbody>
	</table>';

Hasil yang kita peroleh adalah:

Judul ArtikelTanggal Terbit
Format Tanggal Indonesia Dengan PHP Rabu, 12 Oktober 2016
Memahami Return Pada PHP Kamis, 10 November 2016
Memahami Fungi Pada PHP Kamis, 01 Desember 2016

Pada contoh diatas, karena format tanggal adalah date time, maka kita perlu ubah menjadi hanya date saja.

Untuk keperluan tersebut, ada beberapa cara yang dapat ditempuh, bisa menggunakan fungsi date seperti pada contoh diatas, bisa juga menggunakan fungsi explode untuk memecah tanggal berdasarkan spasi:

<?php
$split   = explode(' ', $row['tanggal_terbit']);
$tanggal = $split[0];

IV. Cara Lebih Singkat

Terdapat cara yang lebih singkat untuk menulis tanggal dalam Bahsa Indonesia yaitu dengan mengeset localization menggunakan fungsi setlocale(), tetapi kita tidak bisa menggunakan fungsi date() karena fungsi ini digunakan khusus untuk mencetak tanggal dalam bahasa Inggris. Fungsi yang dapat digunakan adalah strftime(), misal:

setlocale(LC_ALL, 'id-ID', 'id_ID');
echo strftime("%A, %d %B %Y");
// Hasil: Selasa, 04 April 2020
echo strftime("%A, %d %B %Y", strtotime('2020-10-05')) . "\n";
// Hasil: Senin, 05 Oktober 2020

Untuk referensi lengkap fungsi strftime(), bisa mengunjungi halaman manual fungsi ini: PHP strftime – Manual

Perlu diperhatikan bahwa pada fungsi setlocale(),  'id-ID' berjalan di Windows dan tidak bisa bekerja di Linux, jika menggunakan linux kita harus menggunakan 'id_ID', sehingga agar dapat berjalan di Windows dan Linux, kita gunakan keduanya.

Jadi apakah fungsi setlocale() ini reliable atau handal disemua situasi? tergantung kondisi dilapangan. Lebih amannya, tulis code tersebut dalam fungsi tersendiri, misal kita buat fungsi fungsi format_tanggal(...) {...}, sehingga jika terjadi perubahan, misal sebelumnya menggunakan fungsi strftime kemudian beralih ke date() kita hanya perlu mengubah code yang ada di fungsi tersebut, tidak perlu di semua tempat.

Demikian pembahasan mengenai cara mengubah format tanggal Indonesia dengan PHP, semoga bermanfaat.

Salam…

Subscibe Now

Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com