Teknik Memvalidasi Input Tanggal dengan PHP
May 25th, 2009 | by rosihanari |
Cetak Artikel Ini
Salah seorang member saya, mas Teuku Maulana, menanyakan:
Pak… bisakah kita melakukan validasi input tanggal yang diisikan via form sebelum tanggal tersebut diproses atau disimpan ke dalam database? Sebagai contoh misalkan ada user yang mengisikan tanggalnya adalah: 30/02/2009, tentunya itu bukanlah tanggal yang valid. Sebelum tanggal tersebut diproses, bisakah sistem memberitahukan bahwa tanggal tersebut tidak valid? Mohon penjelasannya, kalau bisa dalam script PHP.
OK… saya jawab. Tentu bisa saja kita memvalidasi tanggal yang diinputkan. Dalam PHP, kita bisa menggunakan function checkdate().
Berikut ini saya jelaskan penggunaannya melalui contoh yang saya berikan.
Sebelumnya, perlu kita bahas terlebih dahulu cara penggunaan function checkdate() ini. Function ini akan menghasilkan nilai TRUE jika tanggal yang kita ingin cek adalah valid, serta FALSE jika tidak valid.
Function ini dalam penggunaannya memerlukan 3 buah parameter
checkdate(m, d, y);
dengan m adalah bulan, d adalah tanggal dan y adalah tahun. Ketiga parameter tersebut bisa dalam bentuk string maupun integer.
Misalkan kita ingin mengecek apakah tanggal 12/02/2008 itu valid atau tidak, maka kita gunakan perintah
<?php $tgl = 12; $bln = 2; $thn = 2008; if (checkdate($bln, $tgl, $thn)) echo "Tanggal Valid"; else echo "Tanggal Tidak Valid"; ?>
Contoh di atas sebagai gambaran bila kita menggunakan tanggalnya sudah terpisah dan dinyatakan dalam bilangan integer. Lantas bagaimana bila tanggal yang kita peroleh dalam format string? misalnya “12/02/2008″?
Ya gak ada masalah.. Konsepnya adalah kita pecah terlebih dahulu dengan menggunakan explode(), lalu hasil pecahannya yang terdiri dari tanggal, bulan dan tahun ini barulah diletakkan pada parameter yang bersesuaian.
Ini dia contohnya
<?php $tgl = "12/02/2008"; $pecah = explode("/", $tgl); if (checkdate($pecah[1], $pecah[0], $pecah[2])) echo "Tanggal Valid"; else echo "Tanggal Tidak Valid"; ?>
Demikian mas Maulana jawaban saya atas pertanyaan dan request Anda. Mudah-mudahan bermanfaat bagi Anda dan juga para pengunjung setia blog ini semuanya.
Beberapa artikel terkait
- Script PHP untuk Mencari Selisih Waktu dan Tanggal
- Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP
- Editing Data Tanggal via Form dengan PHP
- Mencari Selisih Waktu dan Tanggal dengan SQL
- Mencari Selisih Hari dari Dua Buah Tanggal dengan PHP (Tanpa Query SQL)
- Memproses Input Komponen Check Box di PHP
- Teknik Debugging Script PHP + MySQL
- Menghitung Jumlah Hari Minggu Antara Dua Tanggal
- Memformat Bilangan dengan Function number_format()
- Teknik Scripting Mencegah SQL Injection di PHP
Share this article on:
Kata kunci: PHP - script - tanggal - validasi -
Mau kaos (T-shirt) Wordpress keren? (
Rosihan Ari adalah seorang programmer, penulis buku, trainer, peneliti dan berusaha menjadi seorang blogger sejati dengan memberikan yang terbaik buat negeri ini. Berfokus pada computer programming serta computer aided learning for mathematics, ia ingin berbagi ilmu yang dimilikinya. 


terimakasih blognya bagus pak saya suka dengan artikel-artikel bapak
kalau bisa setiap artikel ada priviewnya jadi bisa langsung di lihat dulu hasilnya kaya gi mana ?
ok pak maju terus supaya anak-anak bangsa jadi pinter2
to syahrudin: thanks mas atas komennya. Saya usahakan setiap artikel ada screen shotnya.
terima kasih, God bless you..
assalamu’alaykum pak..
mo tanya,… validasi inputan tanggal yg ga boleh lebih dr tanggal sekarang gimana ya? saya dah coba pake validasi maual dengan meng-explode tanggalnya menjadi format yang sama dg date() tanggal sekarang dan alert tp ttp tidak bisa….
Bagaimana ya pak? tolong….:((
to anggraini: tetap pakai perbandingan mbak misal tanggal yang diinputkan adalah $tglInput, dan tanggal sekarang adalah $tglNow keduanya harus dalam format ‘YYYY-MM-DD’
<?php
$tglNow = date(“Y-m-d”);
if($tglInput > $tglNow) echo “Tanggal tidak boleh lebih dari tanggal sekarang”;
else echo “Boleh”;
?>
Saya sebagian belajar dari Artikel Pak Ari, bisa2 saya bisa beneran dengan PHP
Pak saya mau tanya, msl saya mau buat form transaksi barang. Tgl transaksi akan diambil dari tanggal sekarang.
Jadi user tidak bisa menginput tgl/mengubah tgl transaksi. Nah yang saya gak tau itu gimana caranya ngambil tanggal sekarangnya sehingga bs dikenali sebagai suatu variabel ->(buat dijadiin report-nya nanti).
Terima kasih
to laksmi: kan ada function date() di php mbak? itu digunakan untuk membaca tanggal sekarang. contoh: $tgl = date(“Y-m-d”); perintah itu untuk membaca tanggal sekarang dalam bentuk ‘th-bln-tgl’.
Utk $tgl = date(”Y-m-d”) itu berarti tgl sekarang disimpan di $tgl gt bkn y maksudnya?
Jd kalo kita mau lihat kapan tgl transaksi berlangsung tgl lht echo $tgl; ?
Lha tp kalo msl dilihat di report-nya, apakah tglnya akan berubah sesuai tgl skr ato ttp tercatat tgl yg dulu wkt transaksi? Soalnya butuhkan mencatat kpn wkt tjdnya transaksi tsb berlangsung.
Utk Y-m-d sendiri itu bs dibolak-balik terserah keinginan kita gitu ya, msl:
Y-m-d = thn-bln-hr
d-m-Y = hr-bln-thn
Hrsnya gak ada masalahkan?
Terima kasih
to laksmi: sebaiknya tanggal transaksinya disimpan di databasenya mbak supaya tercatat. Kalau Anda pake db mysql, tipe data ‘date’ pada fieldnya itu harus berformat ‘Y-m-d’. Tapi kalo anda mau tipe data varchar, format tanggalnya bisa terserah. It’s up 2 u mau pake tipe data date atau varchar. Kalau hasil date() nya gak disimpan dalam db, ya nanti yang tampil tanggal sekarang terus.