Blog gw

regex untuk format tanggal…

Posted by dillah2008 on April 16, 2008

Sebenernya belum kepakai sih..cuma mungkin nanti2 bakalan kepakai…yah daripada nanti lupa mending ditulis ajah lah :D

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo
"$regs[3].$regs[2].$regs[1]";
} else {
echo
"Invalid date format: $date";
}
?>
Setelah di kutak-katik maka jadinya begini :

<?
class General extends Model {

………

//Fungsi untuk mengecek apakah format tanggal benar atau tidak
function validationDateFormat($date)
{
$min_year = 1900;
$max_year = 2100;
if (ereg (“([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})”, $date, $regs)) {
$str_result = $regs[1].”-”.$regs[2].”-”.$regs[3];
//Ngecek bulannya (harus ga boleh kurang dari 1 dan lebih dari 12
if ( (int)$regs[2]<1 || (int)$regs[2]>12){
return false;
}
//Ngecek tanggalnya (ga boleh kurang dari 1, ga boleh lebih dari 31,kalo bulan feb ga boleh dari total tanggal dibulan itu,ga boleh lebih dari tanggal di bulan ini
(((int)$regs[3] % 4 == 0) && ( (!((int)$regs[3] % 100 == 0)) || ((int)$regs[3] % 400 == 0))) ? $day_in_feb = 29 : $day_in_feb = 28;
if ((int)$regs[3]<1 || (int)$regs[3]>31 || ((int)$regs[2]==2 && (int)$regs[3]>$day_in_feb) || (int)$regs[3] > $this->totalDayInMonth((int)$regs[2])){
return false;
}
//Ngecek tahunnya (ga boleh 0 , ga boleh kuraang dari tahun minimum, ga boleh lebih dari tahun maksimum
if ( (int)$regs[1] ==0 || (int)$regs[1] <$min_year || (int)$regs[1] >$max_year){
return false;
}else{
return $str_result;
}
} else {
return false;
}
}

//Fungsi untuk mengetahui jumlah hari dalam bulan yang diinginkan
function totalDayInMonth($month)
{
if($month==4 || $month==6 || $month==9 || $month==11){
$result = 30;
}elseif($month == 2){
$result = 29;
}else{
$result = 31;
}
return $result;
}

}

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>