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.
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?
Beberapa artikel terkait
- Membuat Script PHP untuk Prediksi Tanggal Kelahiran (HPL)
- 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 Hari dari Dua Buah Tanggal dengan PHP (Tanpa Query SQL)
- Mencari Selisih Waktu dan Tanggal dengan SQL
- Menentukan Tanggal n Hari Berikutnya dan n Hari Sebelumnya Dari Tanggal Hari Ini
- Memproses Input Komponen Check Box di PHP
- Teknik Debugging Script PHP + MySQL
- Membuat Countdown Menuju Tanggal dan Waktu Tertentu Dengan AJAX
Share this article on:
Kata kunci: PHP - script - tanggal - validasi -





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.
Bagaimana caranya utk menyimpan tgl-nya ke database? (cara menginsert date() ke database-nya) Sdgkan tgl transaksinya itu sendiri bukan inputan dari user? jd user hanya bs melihat saja, tdk bs merubah tglnya.
atau bisa juga dengan menggunakan regular expression.
to laksmi: anda bisa lihat contoh insert tanggal yang didapat dari date() ke database mysql di artikel http://blog.rosihanari.net/membuat-buku-tamu-dengan-emoticons
mas scripnya validasinya jika kita menginputkan data yang sama . trimz
Pak,saya mo nanya nih.
Misal sebuah perusahaan membuat aplikasi berbasis web. Dalam aplikasi tsb ada form utk pembuatan surat (lanjutan dr tutorial bapak “generate rtf dgn php”). Tp pd form tsb ada isian/inputan spt berikut:(misal)
No. : MajuJaya/Kep/09/VIII/001.
09 adl tahunnya (yaitu 2009),VIII adl bulannya (yaitu agustus) dan 001 adalah nomor urut surat.
Kata “MajuJaya/Kep/09/VIII/000″ otomotis muncul pada textbox (tahun & bln sesuai pada setingan komputer),penginput hanya mengganti nomor urutnya saja.
Gimana caranya utk membuat seperti di atas?
Thx…
Mas mau tanya tentang validasi tanggal,,,bagaimana memvalidasi tanggal yang terhubung dengan database dimana tanggal menggunakan combobox,,,tolong kasih contoh dong…form input dATA divalidasi benar baru bisa di simpan dan salah input divaidasi
to muhammad sidik: lho.. kan tanggal yang akan divalidasi dengan checkdate(), dibaca dulu dari comboboxnya.
$tgl = $_POST['tanggal']; // baca tanggal dari combobox
$bln = $_POST['bulan']; // baca bln dari combobox
$thn = $_POST['tahun']; // baca thn dari combobox
if (checkdate($bln, $tgl, $thn)) … proses simpan data;
else echo “Tanggal Tidak Valid”;
wah hebat nih mas rosihan.
codingnya jago yh.
Thanks mas buat sharing nya.
^^
Pagi mas,
kalau mas bisa bantu progran,
kalau saya bisa bales, dengan terimakasih
gmn cara membuat validasi tanggal ga blh kosong dan formatnya YYYY-MM-DD, mas ari? kalo format salah(misal diinput DD-MM-YYYY) dan tanggalnya ga di input pada textbox ataupun salah satunya ga benar, keluar pesan Pemberitahuan gitu.. gmn ya mas?? thanks
saya mau tanya, saya lagi membuat program absensi.
Fieldya sbb :
tanggal : 11-02-2010 jam : 06:00:00
nik : textfield
pin : textfield
status : textfield
Gimana ya caranya biar pas di textfied_statusnya terlulis otomatis Keterangan “Datang” atau “Pulang” sesuai jam yg tertera di textfield_jam.
terima kasih.
@redy: lha.. dikatakan jam Datang bila jamnya berapa? begitu pula jam pulang itu jam berapa? kalo itu ketemu, gunakan IF untuk mengimplementasikannya.
pak saya mau tanya bagaimana caranya jika memvalidasi inputan yang saya submit ke tabel , jika record sudah ada atau sama maka tidak bisa input , mohon bantuanya .. , blognya bagus …
pak mw tanya,klo script buat submit tapi masuk ke intranet yang udah ada bsa ga?…
*jadi applikasi nya dipakai ke database yang udah ada…
@azhar: bisa saja mas… tinggal arahkan koneksi database nya saja ke server yang sudah ada,