23 Mei 2016

Mengambil daftar tanggal antara dua tanggal berbeda

Pada suatu kasus yang menggunakan tanggal pada PHP seperti membuat daftar tanggal antara dua tang... thumbnail 1 summary

Pada suatu kasus yang menggunakan tanggal pada PHP seperti membuat daftar tanggal antara dua tanggal (diff tanggal) semisal untuk absensi atau jadwal mungkin susah.
Tapi dengan beberapa fungsi array kasus tersebut dapat diselesaikan, contohnya :
Tanggal mulai 2016-05-04 (4 Mei 2016) hingga Tanggal 2016-08-26 (26 Agustus 2016) akan menampilkan tanggal-tanggal dari mulai hingga selesai.



1. Buat fungsi untuk mengambil daftar tanggal :
function ambil_hari($sTanggalMulai, $sTanggalSelesai)
{
  $sTanggalMulai = date("Y-m-d", strtotime($sTanggalMulai));
  $sTanggalSelesai = date("Y-m-d", strtotime($sTanggalSelesai));
  $fmonth=date("n",strtotime($sTanggalMulai));
  $aDays[$fmonth][] = $sTanggalMulai;
  $sTanggalData = $sTanggalMulai;
  while($sTanggalData < $sTanggalSelesai){
    $sTanggalData = date("Y-m-d", strtotime("+1 day", strtotime($sTanggalData)));
$month=date("n",strtotime($sTanggalData));
    $aDays[$month][] = $sTanggalData;
  }
  return $aDays;
}
2. Untuk opsionalnya buat fungsi mengkonversikan nama bulan dan nama hari ke bahasa Indonesia
function nama_bulan($bulan)
{
$mons = array(1 => "Januari", 2 => "Februari", 3 => "Maret", 4 => "April", 5 => "Mei", 6 => "Juni", 7 => "Juli", 8 => "Agustus", 9 => "September", 10 => "Oktober", 11 => "November", 12 => "Desember");
$ft= strtr($bulan, $mons);
return $ft;
}
function nama_hari($tanggal)
{
$hari=date("w",strtotime($tanggal));
$mons = array(1 => "Senin", 2 => "Selasa", 3 => "Rabu", 4 => "Kamis", 5 => "Jumat", 6 => "Sabtu", 0 => "Minggu");
$ft= strtr($hari, $mons);
return $ft;
}
3. Jalankan perintah berdasarkan kasus di atas
$mulai="2016-05-04";
$selesai="2016-08-26";
$hariList=ambil_hari($mulai,$selesai);
foreach($hariList as $ValBulan=>$ValTanggal)
{ $nama_bulan=nama_bulan($ValBulan);
echo '<h1>'.$nama_bulan.'</h1>';
foreach($ValTanggal as $ValHari)
{ $nama_hari=nama_hari($ValHari);
echo $nama_hari.",".$ValHari."<br>";
}
}


Berikut full source code nya