Beli Modem Wavecom Untuk SMS Gateway. FREE E-book Gammu + FREE Ongkos kirim !!
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[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.

VN:F [1.9.3_1094]
Rating: 7.0/10 (1 vote cast)
Teknik Memvalidasi Input Tanggal dengan PHP, 7.0 out of 10 based on 1 rating
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


Share this article on:

Kata kunci: PHP - script - tanggal - validasi -


Ada 25 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.

  11. Laksmi says:

    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.

  12. ganda says:

    atau bisa juga dengan menggunakan regular expression. :D

  13. rosihanari says:

    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

  14. febriawan says:

    mas scripnya validasinya jika kita menginputkan data yang sama . trimz

  15. adit says:

    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…

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

  17. rosihanari says:

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

  18. johnson says:

    wah hebat nih mas rosihan.
    codingnya jago yh.

    Thanks mas buat sharing nya.

    ^^

  19. Jadul says:

    Pagi mas,

    kalau mas bisa bantu progran,
    kalau saya bisa bales, dengan terimakasih
    :-)

  20. pinto says:

    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

  21. redy says:

    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.

  22. rosihanari says:

    @redy: lha.. dikatakan jam Datang bila jamnya berapa? begitu pula jam pulang itu jam berapa? kalo itu ketemu, gunakan IF untuk mengimplementasikannya.

  23. arief says:

    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 …

  24. azhar says:

    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…

  25. rosihanari says:

    @azhar: bisa saja mas… tinggal arahkan koneksi database nya saja ke server yang sudah ada,



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.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word