PHP Validasi Tanggal

Pada artikel sebelumnya telah kita bahas cara merubah/konversi tanggal menjadi nama hari.
Tapi tanpa adanya validasi maka akan terkesan aneh jika tanggal 50 dianggap ada :)
Langsung saja ke fungsi PHP nya.
Yang kita pakai untuk validasi tanggal dengan adalah fungsi checkdate()
Penggunaannya checkdate('bulan/tanggal/tahun) atau silakan baca referensinya di manual fungsi checkdate.

Dari contoh form pada artikel Konversi tanggal menjadi hari menggunakan PHP kalau kita validasi maka perlu kita tambahkan code berikut setelah if(isset($_GET['ubah'])) {

$cek = checkdate($_POST['m'], $_POST['d'], $_POST['y']);
if($cek != 1) { echo 'Tanggal tidak valid'; }

atau script lengkapnya menjadi seperti ini

<?php
echo '<form method="get" action="">
tanggal:<input type="text" name="tanggal" value="">
<select name="bulan">
<option value="1">Januari</option>
<option value="2">Pebruari</option>
<option value="3">Maret</option>
<option value="4">April</option>
<option value="5">Mei</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">Agustus</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Desember</option>
</select>
tahun:<input type="text" name="tahun" value="">
<input type="submit" name="ubah" value="Cari Hari">
</form><br/>';
if(isset($_GET['ubah'])) {
$cek = checkdate($_POST['m'], $_POST['d'], $_POST['y']);
if($cek != 1) {
echo 'Tanggal tidak valid!';
}
else {
$tgl = $_GET['bulan'].'/'.$_GET['tanggal'].'/'.$_GET['tahun'];
$unix = strtotime($tgl);
$hari = date("D", $unix);
$hari = str_replace('Sun', 'Minggu', $hari);
$hari = str_replace('Mon', 'Senin', $hari);
$hari = str_replace('Tue', 'Selasa', $hari);
$hari = str_replace('Wed', 'Rabu', $hari);
$hari = str_replace('Thu', 'Kamis', $hari);
$hari = str_replace('Fri', 'Jum\'at', $hari);
$hari = str_replace('Sat', 'Sabtu', $hari);
echo 'tanggal '.$_GET['tanggal'].'-'.$_GET['bulan'].'-'.$_GET['tahun'].' adalah hari '.$hari;
}
}
?>


hasil dari checkdate() ini adalah 1 atau TRUE jika benar dan 0 atau FALSE jika salah (tidak valid).

semoga bermanfaat