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
<?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";
}
?> <?
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;
}}