[PHP] Membuat Sendiri Fungsi Hitung Batas Waktu Deadline
yarp, lagi-lagi ane terlalu pusing untuk mencari fungsi dari date()
untuk menghitung batas waktu tertentu yang digunakan untuk deadline.
Daripada pusing-pusing nyari fungsi yang tepat, mendingan bikin sendiri
fungsi buat menghitung batas waktu a.k.a deadline.
Coba langsung ditilik code nya yak
Penjelasan dikit:
Misalnya, kita membuat sistem untuk input data untuk tugas mahasiswa secara online. Untuk input data tersebut kita memberi tanggal tertentu sebagai batas waktu penginputan. Jika lewat dari tanggal tersebut, maka data sudah tidak bisa diinputkan lagi.
Sebagai contoh, saat artikel ini ditulis tanggal 1 April 2012 atau dalam format database menjadi "2012-04-01", dan kita memberi kesempatan kepada mahasiswa untuk menginput tugas sampai dengan tanggal 5 April 2012. Berarti sisa hari yang dimiliki mahasiswa tersebut untuk menginput data adalah 5 hari (tanggal 5 masih bisa melakukan input data). Maka dengan fungsi diatas kita akan lebih mudah untuk mendapatkan sisa waktu harinya.
Contoh penggunaan fungsi:
Btw, hahaha.. panjang banget yak scriptnya. itu soalnya udah digabungin sama fungsi-fungsi lain ane yang kali aja bisa dipake per masing-masing fungsinya. heuheu.. kalo ada yang punya cara yang lebih pendek, di share ya.. please
Coba langsung ditilik code nya yak
PHP Code:
<?php
class waktu {
function frmDate($date,$code){
$explode = explode("-",$date);
$year = $explode[0];
(substr($explode[1],0,1)=="0")?$month=str_replace("0","",$explode[1]):$month=is_string($explode[1]);
$dated = $explode[2];
$explode_time = explode(" ",$dated);
$dates = $explode_time[0];
switch($code){
// Per Object
case 4: $format = $dates; break; // 01
case 5: $format = $month; break; // 01
case 6: $format = $year; break; // 2011
}
return $format;
}
function now($code=1){
switch($code){
case 1: $date = date("Y-m-d H:i:s"); break;
case 2: $date = date("Y-m-d"); break;
case 3: $date = date("H:i:s"); break;
}
return $date;
}
function nmonth($month){
$thn_kabisat = date("Y") % 4;
($thn_kabisat==0)?$feb=29:$feb=28;
$init_month = array(1=>31, // Januari [current]
2=>$feb, // Feb
3=>31, // Mar
4=>30, // Apr
5=>31, // Mei
6=>30, // Juni
7=>31, // Juli
8=>31, // Aug
9=>30, // Sep
10=>31, // Oct
11=>30, // Nov
12=>31);// Des
$nmonth = $init_month[$month];
return $nmonth;
}
function dateRange($start,$end){
$xdate =$this->frmDate($start,4);
$ydate =$this->frmDate($end,4);
$xmonth =$this->frmDate($start,5);
$ymonth =$this->frmDate($end,5);
$xyear =$this->frmDate($start,6);
$yyear =$this->frmDate($end,6);
if($xyear==$yyear){
if($xmonth==$ymonth){
$nday=$ydate+1-$xdate;
} else {
$r2=NULL;
$nmonth = $ymonth-$xmonth;
$r1 = $this->nmonth($xmonth)-$xdate+1;
for($i=$xmonth+1;$i<$ymonth;$i++){
$r2 = $r2+$this->nmonth($i);
}
$r3 = $ydate;
$nday = $r1+$r2+$r3;
}
} else {
// Last Year
//get_nDay
$r2=NULL; $r3=NULL;
$r1=$this->nmonth($xmonth)-$xdate+1;
//get_nMonth
for($i=$xmonth+1;$i<13;$i++){
$r2 = $r2+$this->nmonth($i);
}
// Current Year
for($i=1;$i<$ymonth;$i++){
$r3 = $r3+$this->nmonth($i);
}
$r4 = $ydate;
$nday = $r1+$r2+$r3+$r4;
}
return $nday." Hari";
}
function deadline($date){
$now = $this->now();
$yDate = $this->frmDate($date,6);
$mDate = $this->frmDate($date,5);
$dDate = $this->frmDate($date,4);
$yNow = $this->frmDate($now,6);
$mNow = $this->frmDate($now,5);
$dNow = $this->frmDate($now,4);
$deadmsg = "Telah lewat";
// cek tahun
if($yDate>$yNow){
return $this->dateRange($now,$date);
} elseif($yDate==$yNow){
// cek bulan
if($mDate>$mNow){
return $this->dateRange($now,$date);
} elseif($mDate==$mNow){
// cek hari
if($dDate>=$dNow){
return $this->dateRange($now,$date);
} else {
return $deadmsg;
}
} else {
return $deadmsg;
}
} else {
return $deadmsg;
}
}
}?>
Penjelasan dikit:
Misalnya, kita membuat sistem untuk input data untuk tugas mahasiswa secara online. Untuk input data tersebut kita memberi tanggal tertentu sebagai batas waktu penginputan. Jika lewat dari tanggal tersebut, maka data sudah tidak bisa diinputkan lagi.
Sebagai contoh, saat artikel ini ditulis tanggal 1 April 2012 atau dalam format database menjadi "2012-04-01", dan kita memberi kesempatan kepada mahasiswa untuk menginput tugas sampai dengan tanggal 5 April 2012. Berarti sisa hari yang dimiliki mahasiswa tersebut untuk menginput data adalah 5 hari (tanggal 5 masih bisa melakukan input data). Maka dengan fungsi diatas kita akan lebih mudah untuk mendapatkan sisa waktu harinya.
Contoh penggunaan fungsi:
PHP Code:
<?php
$waktu = new waktu;
$date = "2012-04-05";
echo "Deadline : ".$waktu->deadline($date);?>
Btw, hahaha.. panjang banget yak scriptnya. itu soalnya udah digabungin sama fungsi-fungsi lain ane yang kali aja bisa dipake per masing-masing fungsinya. heuheu.. kalo ada yang punya cara yang lebih pendek, di share ya.. please
Tidak ada komentar:
Posting Komentar