Script PHP Untuk Menghitung Selisih Waktu dan Tanggal
-
Upload
septi-suhesti -
Category
Documents
-
view
5.449 -
download
4
description
Transcript of Script PHP Untuk Menghitung Selisih Waktu dan Tanggal
TRIK PEMROGRAMAN PHP
Script PHP UntukMenghitung Selisih Waktu
dan Tanggalwww.bunafit-komputer.com
www.planetKode.Com
Koleksi Buku dari Penerbit GAVAMEDIA, Yogyakarta
Penulis : Bunafit Nugroho, dan Indah Indriyanna
Harga: Rp. 57.500,- Harga: Rp. 65.500,- Harga: Rp. 36.500,- Harga: Rp. 67.500,-
Harga: Rp. 66.500,- Harga: Rp. 49.500,- Harga: Rp. 49.500,- Harga: Rp. 33.500,-
2 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta
Mendapatkan Tanggal 25 hari KedepanDengan menggunakan program PHP, kita dapat mengetahui nama hari dan tanggalyang berjalan setelah n hari kedepan atau n hari yang telah berlalu. Dengan fungsitersebut Kita juga dapat mengetahui secara lengkap informasi jam yang berjalan.Fungsi yang dapat digunakan adalah mktime(), berikut adalah sintaks dasarnya:
SINTAKS :mktime ( [int hour [, int minute [, int second [,
int month [, int day [, int year [,int is_dst]]]]]]] )
Dengan fungsi di atas, Anda dapat mengetahui tanggal pada hari besok, bulan depanmaupun tahun depan. Caranya adalah dengan menambahkan operasi penambahanatau pengurangan pada data tanggal, bulan atau tahun. Berikut adalah contohnya:
Hari Kemaren :mktime(0,0,0, date("m"), date("d")-1, date("Y"));
Hari Depan :mktime(0,0,0, date("m"), date("d")+1, date("Y"));
Bulan Lalu :mktime(0,0,0, date("m")-1, date("d"), date("Y"));
Bulan Depan :mktime(0,0,0, date("m")+1, date("d"), date("Y"));Tahun Lalu :mktime(0,0,0, date("m"), date("d"), date("Y")-1);
Tahun Depan :mktime(0,0,0, date("m"), date("d"), date("Y")+1);
Dari perintah di atas, apabila Anda menggunakan MySQL, maka Anda juga dapatmenggunakan perintah DATE_ADD() seperti yang telah dibahas pada bab terdahulu.Berikut contohnya:
mysql> SELECT DATE_ADD(CURDATE(), INTERVAL 25 DAY)-> AS 25harilagi;
+------------+| 25harilagi |+------------+| 2007-05-10 |+------------+1 row in set (0.66 sec)
Script PHP Untuk Menghitung Selisih Waktu dan Tanggal 3
mysql> SELECT DATE_FORMAT(DATE_ADD(CURDATE(),-> INTERVAL 25 DAY),-> '%W %d-%m-%Y') AS 25harilagi;
+---------------------+| 25harilagi |+---------------------+| Thursday 10-05-2007 |+---------------------+1 row in set (0.67 sec)
Dari gambaran di atas, maka apabila hendak mendapatkan waktu dan tanggal yangberjalan 25 hari kemudian, perintahnya adalah:
Listing Program tgl_25harilagi.php
<?phpecho "<b>PROGRAM LIAT HARI 25 HARI LAGI</b>";$next25day = mktime(0,0,0,date("n"),date("j")+25,date("Y"));echo "<br>Lihat Hari :". date("l", $next25day);echo "<br>Lihat Tanggal :". date("d-m-Y", $next25day);?>
Akhir Listing
Dari skrip program di atas, apabila ingin mendapatkan tanggal maupun hari yangberjalan beberapa hari yang lalu, maka nilainya dapat menggunakan tanda minus (-25). Berikut hasilnya:
Gambar Mendapatkan tanggal 25 hari kedepan
Tanggal n Hari Kedepan dan Minggu Tidak DihitungPada latihan sebelumnya, Kita dengan mudah mendapatkan informasi tanggal yangakan berjalan pada waktu yang akan datang. Permasalahannya sekarang, bagaimanaapabila Kita tidak menghitung hari minggu sebagai hari aktif. Berikut adalah skripuntuk menyelesaikannya:
4 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta
Listing Program Tgl_nHariLagi.php
<html><head><title>Date and Time PHP</title></head><body><?php// Mengetahui Tgl n Hari kedepan, dan// hari minggu tidak dihitungecho "<b>PROGRAM LIAT HARI 10 HARI LAGI</b><br>";echo "<b>Hari (minggu) tidak dihitung</b><br>";echo "Tanggal sekarang :".date('l d-m-Y')."<br>";
$hari = 10;$waktu = $hari * 2;
for ($i=0; $i <= $waktu; $i++) {$tgl =mktime(0,0,0,date("n"),date("j")+ $i,date("Y"));// Mengecek hari mingguif (date("l", $tgl)=="Sunday") {
$jum_libur++;}else {
// Apablia jumlah hari sudah memenuhi// program berhentiif ($jum_hari==$hari) {
break;}else {
$jum_hari++;}
}}
$jumhari = $jum_hari + $jum_libur;$nextday = mktime(0,0,0,date("n"),date("j")+
$jumhari,date("Y"));echo "Tanggal Untuk $hari hari kedepan = ".
date('l d-m-Y', $nextday);?></body></html>
Akhir Listing
Script PHP Untuk Menghitung Selisih Waktu dan Tanggal 5
Dari contoh program di atas, Kita hendak mengetahui informasi tanggaluntuk 10 hari kedepan, akan tetapi hari minggu tidak terhitung didalamnya,atau hari minggu dilompati. Hasil dari contoh program di atas adalah:
Gambar Hasil program n Hari kemudian
Tanggal n Hari Kebelakang dan Minggu Tidak DihitungApabila pada contoh program sebelumnya berfungsi mencari informasi tanggal yangberjalan n hari kemudian, maka untuk mendapatkan informasi n hari yang telahberlalu Anda dapat mengubah nilai plus (+) menjadi minus (-) pada penambahan nilaitanggalnya. Berikut adalah contohnya:
Listing Program Tgl_nHariLalu.php
<html><head><title>Date and Time PHP</title></head><body><?php// Mengetahui Tgl n Hari kebelakang, dan// hari minggu tidak dihitungecho "<b>PROGRAM LIAT HARI 10 HARI LALU</b><br>";echo "<b>Hari (minggu) tidak dihitung</b><br>";echo "Tanggal sekarang :".date('l d-m-Y')."<br>";
$hari = 10;$waktu = $hari * 2;
for ($i=0; $i <= $waktu; $i++) {// 1 Hari kemudian$tgl =mktime(0,0,0,date("n"),date("j")-$i,date("Y"));// Memeriksa hari mingguif (date("l", $tgl)=="Sunday") {
$jum_libur++;
6 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta
}else {
if ($jum_hari==$hari) {break;
}else {
// Penambahan hari$jum_hari++;
}}
}
$jumhari = $jum_hari + $jum_libur;$nextday = mktime(0,0,0,date("n"),date("j")-$jumhari,
date("Y"));
# Penerapanecho "Tanggal Untuk $hari hari kebelakang = ".
date('l d-m-Y', $nextday);?></body></html>
Akhir Listing
Dari contoh program di atas, apabila dijalankan Anda akan mendapatkan informasitanggal seperti gambar berikut:
Gambar Hasil Program n Hari yang Lalu
Tanggal n Hari Kedepan Hari Minggu dan Libur NasionalTidak DihitungKasus lain, bagaimana apabila selain hari minggu, program juga tidak menghitunghari libur nasional. Permasalahan ini dapat Kita selesaikan dengan cara
Script PHP Untuk Menghitung Selisih Waktu dan Tanggal 7
mendefinisikan daftar tanggal hari libur nasional yang ada. Berikut adalah contohprogramnya:
Listing Program Tgl_nHariLagi2.php
<html><head><title>Date and Time PHP</title></head><body><?phpecho "<b>PROGRAM LIAT HARI n HARI LAGI</b><br>";echo "<b>Hari Libur (minggu,Lib Nas) tidak dihitung</b><br>";$hari = 10;$waktu = $hari * 2;$libnas= array("24-04-2007","01-05-2007");
for ($i=0; $i <= $waktu; $i++) {$tgl =mktime(0,0,0,date("n"),date("j")+ $i,date("Y"));// Cek hari libur nasionalforeach ($libnas as $indeks => $tgl_libnas) {
if ($tgl_libnas== date('d-m-Y', $tgl)) {$jum_libnas++;
}}
// Hitung hari mingguif (date("l", $tgl)=="Sunday") {
$jum_minggu++;}else {
// Hitung hariif ($jum_hari==$hari) {
break;}else {
$jum_hari++;}
}}
$jumhari = $jum_hari + $jum_libnas + $jum_minggu;$nextday = mktime(0,0,0,date("n"),date("j")+
$jumhari,date("Y"));echo "Tanggal Untuk $hari hari kedepan = ".
date('l d-m-Y', $nextday);?></body>
8 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta
</html>
Akhir Listing
Dari contoh program di atas, sebaiknya Anda mendefinisikan daftar tanggal yangmenjadi libur nasional ke dalam data array, berikut contohnya:
$libnas= array("24-04-2007","01-05-2007");
Kemudian untuk mendapatkan hari libur nasional yang terlewati, perintahpegecekannya adalah:
$tgl =mktime(0,0,0,date("n"),date("j")+ $i,date("Y"));foreach ($libnas as $indeks => $tgl_libnas) {
if ($tgl_libnas== date('d-m-Y', $tgl)) {$jum_libnas++;
}}
Jadi, dengan cara mendefinisikan semua daftar hari libur nasional yang ada dalambulan berjalan atau tahun sekarang, maka program akan mendapatkan data tanggalyang valid. Berikut contoh hasilnya:
Gambar Hasil program n Hari kemudian
Program Hitung Jumlah MingguDari dua tanggal yang berbeda, Anda dapat mengetahui jumlah hari minggu yang adadiantaranya. Untuk dapat mengetahuinya, Anda dapat menggunakan skrip programberikut:
Listing Program Hitung_minggu.php
function JumMinggu($tgl_mulai,$tgl_akhir) {
Script PHP Untuk Menghitung Selisih Waktu dan Tanggal 9
$adaysec =24*3600;$tgla= strtotime($tgl_mulai);$tglb= strtotime($tgl_akhir);
$minggu=0;for ($i=$tgla; $i < $tglb; $i+=$adaysec){
if (date("w",$i) =="0") {$minggu++;
}}return $minggu;
}
# Contohecho "Rentang waktu '2007-03-01' sampai '2007-04-17'<br>";echo "Jum Minggu : ".JumMinggu('2007-03-01','2007-04-17');
Akhir Listing
Gambar Hasil menghitung hari minggu
Menghitung Selisih Hari Antara 2 TanggalDengan menggunakan skrip dibawah Anda dapat mengetahui jumlah hari yang adadiantara dua tanggal. Perhatikan contoh skrip berikut:
Listing Program hitung_hari.php
<?phpfunction dateDiff($dformat, $endDate, $beginDate){ $date_parts1=explode($dformat, $beginDate);
10 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta
$date_parts2=explode($dformat, $endDate);
$start_date =gregoriantojd($date_parts1[1],$date_parts1[0], $date_parts1[2]);
$end_date =gregoriantojd($date_parts2[1],$date_parts2[0], $date_parts2[2]);
return $end_date - $start_date;}
# Penerpan dd-mm-yyyy$date1="07/04/2007";$date2="15/04/2007";
# Pemakaianecho "Rentang waktu '$date1' sampai '$date2' <br>";echo "Jum Hari : ". dateDiff("/", $date2, $date1); ?>
Akhir Listing
Gambar Hasil menghitung hari
Selisih Hari Untuk Menghitung KeterlambatanSkrip program ini dapat Anda gunakan untuk menyelesaikan permasalahan saat Andamembuat program yang terkait dengan batas waktu, misalnya pengembalian saatmeminjam buku atau penyetoran uang saat arisan. Dengan menggunakan skripberikut, Anda dapat menghitung jumlah waktu keterlambatan dari deadline yang telahditetapkan. Berikut skripnya:
Listing Program selisih_tanggal.php
<?php$tgl_dateline = "15-04-2007";$tgl_kembali = "19-04-2007";
Script PHP Untuk Menghitung Selisih Waktu dan Tanggal 11
// Mengurai tanggal detline$tgl_dateline_pcs = explode ("-", $tgl_dateline);$tgl_dateline_pcs = $tgl_dateline_pcs[2]."-".
$tgl_dateline_pcs[1]."-".$tgl_dateline_pcs[0];
// Mengurai tanggal kembali$tgl_kembali_pcs = explode ("-", $tgl_kembali);$tgl_kembali_pcs = $tgl_kembali_pcs[2]."-".
$tgl_kembali_pcs[1]."-".$tgl_kembali_pcs[0];
$selisih = strtotime ($tgl_kembali_pcs) –strtotime ($tgl_dateline_pcs);
$selisih = $selisih / 86400;
# Implementasiecho "Detline : $tgl_dateline, pengembalian : $tgl_kembali";echo "<br>Terlambat ".floor ($selisih)." hari.";?>
Akhir Listing
Dari contoh program di atas, untuk implementasi ke dalam program Anda dapatmenggunakan data deadline yang berasal dari database. Seandainya waktupengembalian atau penyetorannya adalah hari ini, maka pada tanggal kembali dapatmenggunakan waktu sekarang. Berikut contohnya:
$tgl_dateline = "15-04-2007";$tgl_kembali = date('d-m-Y');
Hasil dari contoh program di atas adalah:
Gambar Mendapatkan waktu keterlambatan
12 Artikel ini diterbitkan oleh Redaksi Bunafit Komputer, Yogyakarta
Fungsi Menghitung KeterlambatanDari contoh program penghitung selisih tanggal, Anda dapat membuat paket menjadifungsi, sehingga dapat mempermudah dalam penggunaannya dalam halamanprogram.
Listing Program selisih_tanggal3.php
<?phpfunction SelisihTgl($tgl_dateline, $tgl_kembali) {
// Mendapatkan tanggal detline$tgl_dateline_pcs = explode ("-", $tgl_dateline);$tgl_dateline_pcs = $tgl_dateline_pcs[2]."-".
$tgl_dateline_pcs[1]."-".$tgl_dateline_pcs[0];
// Mendapatkan tanggal kembali/transaksi$tgl_kembali_pcs = explode ("-", $tgl_kembali);$tgl_kembali_pcs = $tgl_kembali_pcs[2]."- ".
$tgl_kembali_pcs[1]."-".$tgl_kembali_pcs[0];
// Menghitung selisih$selisih = strtotime ($tgl_kembali_pcs) –
strtotime ($tgl_dateline_pcs);
// Pembulatan selisih kedalam tanggal$selisih = $selisih / 86400;if ($selisih >=1) {
$hasil = floor($selisih);}else {
$hasil = 0;}return $hasil;
}
# Penerpan$tgl_dateline = "30-12-2006";$tgl_kembali = "05-01-2006";
echo "Terlambat ".SelisihTgl($tgl_dateline,$tgl_kembali)." hari.";
?>
Akhir Listing
oooOooo
Script PHP Untuk Menghitung Selisih Waktu dan Tanggal 13