Mau kaos (T-shirt) Wordpress keren? (Selengkapnya)

Pasang banner (468x60) di sini


Dapatkan Script SMS Gateway PHP + MySQL

Seperti: software pengirim SMS massal, SMS survei, SMS polling, SMS quick count, SMS dakwah, Web2SMS dan masih banyak lagi... semuanya berbasis PHP & MySQL
[Info Lengkap...]


Teknik Memvalidasi Input Tanggal dengan PHP


May 25th, 2009 | by rosihanari | Cetak Artikel Ini 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


Share this article on:

Kata kunci: PHP - script - tanggal - validasi -


Ada 22 komentar dalam artikel ini.

  1. syahrudin says:

    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

  2. rosihanari says:

    to syahrudin: thanks mas atas komennya. Saya usahakan setiap artikel ada screen shotnya.

  3. delpiero says:

    terima kasih, God bless you..

  4. anggraini says:

    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….:((

  5. rosihanari says:

    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”;
    ?>

  6. Saya sebagian belajar dari Artikel Pak Ari, bisa2 saya bisa beneran dengan PHP :-D :-D

  7. Laksmi says:

    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

  8. rosihanari says:

    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’.

  9. Laksmi says:

    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

  10. rosihanari says:

    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.



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
Untuk membuktikan bahwa komentar Anda bukan spam, tulis kata yang muncul dalam gambar di bawah ini. Bila Anda tidak bisa membaca kata dalam gambar, klik pada gambar tersebut untuk mendengarkan suara dari kata tersebut
Click to hear an audio file of the anti-spam word