• Tidak ada hasil yang ditemukan

Script PHP Untuk Menghitung Selisih Waktu dan Tanggal

N/A
N/A
Protected

Academic year: 2022

Membagikan "Script PHP Untuk Menghitung Selisih Waktu dan Tanggal"

Copied!
10
0
0

Teks penuh

(1)

Script PHP Untuk

Menghitung Selisih Waktu dan Tanggal

www.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)

Mendapatkan Tanggal 25 hari Kedepan

Dengan menggunakan program PHP, kita dapat mengetahui nama hari dan tanggal yang berjalan setelah n hari kedepan atau n hari yang telah berlalu. Dengan fungsi tersebut 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 depan maupun tahun depan. Caranya adalah dengan menambahkan operasi penambahan atau 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 dapat menggunakan 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)

(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 yang berjalan 25 hari kemudian, perintahnya adalah:

Listing Program tgl_25harilagi.php

<?php

echo "<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 yang berjalan 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 Dihitung

Pada latihan sebelumnya, Kita dengan mudah mendapatkan informasi tanggal yang

akan berjalan pada waktu yang akan datang. Permasalahannya sekarang, bagaimana

apabila Kita tidak menghitung hari minggu sebagai hari aktif. Berikut adalah skrip

untuk menyelesaikannya:

(4)

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 dihitung

echo "<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 minggu

if (date("l", $tgl)=="Sunday") {

$jum_libur++;

}

else {

// Apablia jumlah hari sudah memenuhi // program berhenti

if ($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

(5)

Dari contoh program di atas, Kita hendak mengetahui informasi tanggal untuk 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 Dihitung

Apabila pada contoh program sebelumnya berfungsi mencari informasi tanggal yang berjalan n hari kemudian, maka untuk mendapatkan informasi n hari yang telah berlalu Anda dapat mengubah nilai plus (+) menjadi minus (-) pada penambahan nilai tanggalnya. 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 dihitung

echo "<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 minggu

if (date("l", $tgl)=="Sunday") {

$jum_libur++;

(6)

}

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"));

# Penerapan

echo "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 informasi tanggal seperti gambar berikut:

Gambar Hasil Program n Hari yang Lalu

Tanggal n Hari Kedepan Hari Minggu dan Libur Nasional Tidak Dihitung

Kasus lain, bagaimana apabila selain hari minggu, program juga tidak menghitung

hari libur nasional. Permasalahan ini dapat Kita selesaikan dengan cara

(7)

mendefinisikan daftar tanggal hari libur nasional yang ada. Berikut adalah contoh programnya:

Listing Program Tgl_nHariLagi2.php

<html>

<head>

<title>Date and Time PHP</title>

</head>

<body>

<?php

echo "<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 nasional

foreach ($libnas as $indeks => $tgl_libnas) { if ($tgl_libnas== date('d-m-Y', $tgl)) {

$jum_libnas++;

} }

// Hitung hari minggu

if (date("l", $tgl)=="Sunday") {

$jum_minggu++;

}

else {

// Hitung hari

if ($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)

</html>

Akhir Listing

Dari contoh program di atas, sebaiknya Anda mendefinisikan daftar tanggal yang menjadi libur nasional ke dalam data array, berikut contohnya:

$libnas= array("24-04-2007","01-05-2007");

Kemudian untuk mendapatkan hari libur nasional yang terlewati, perintah pegecekannya 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 dalam bulan berjalan atau tahun sekarang, maka program akan mendapatkan data tanggal yang valid. Berikut contoh hasilnya:

Gambar Hasil program n Hari kemudian

Program Hitung Jumlah Minggu

Dari dua tanggal yang berbeda, Anda dapat mengetahui jumlah hari minggu yang ada diantaranya. Untuk dapat mengetahuinya, Anda dapat menggunakan skrip program berikut:

Listing Program Hitung_minggu.php

function JumMinggu($tgl_mulai,$tgl_akhir) {

(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;

}

# Contoh

echo "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 Tanggal

Dengan menggunakan skrip dibawah Anda dapat mengetahui jumlah hari yang ada diantara dua tanggal. Perhatikan contoh skrip berikut:

Listing Program hitung_hari.php

<?php

function dateDiff($dformat, $endDate, $beginDate){

$date_parts1=explode($dformat, $beginDate);

(10)

$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";

# Pemakaian

echo "Rentang waktu '$date1' sampai '$date2' <br>";

echo "Jum Hari : ". dateDiff("/", $date2, $date1);

?>

Akhir Listing

Gambar Hasil menghitung hari

Selisih Hari Untuk Menghitung Keterlambatan

Skrip program ini dapat Anda gunakan untuk menyelesaikan permasalahan saat Anda membuat program yang terkait dengan batas waktu, misalnya pengembalian saat meminjam buku atau penyetoran uang saat arisan. Dengan menggunakan skrip berikut, Anda dapat menghitung jumlah waktu keterlambatan dari deadline yang telah ditetapkan. Berikut skripnya:

Listing Program selisih_tanggal.php

<?php

$tgl_dateline = "15-04-2007";

$tgl_kembali = "19-04-2007";

Referensi

Dokumen terkait

Berdasarkan hasil evaluasi (expert judgement) ahli isi maka dapat dilihat dari isi materi dalam multimedia pembelajaran interaktif IPA sudah sesuai dengan konten

Malam itu akupun bersiap-siap pergi menghadiri jamuan makan keluarga pak Boi, sepanjang jalan aku melamunkan tentang perkataan pak Boi tempo hari padaku “ nak Dino, nak dino

Berdasarkan hasil yang telah diperoleh pada penelitian ini bahwa indikator persepsi masyarakat tentang korupsi di Kabupaten Tulungagung tergolong dalam kategori

Alhamdulillahirabbil’alamin, puji syukur kehadirat Alloh SWT atas segala nikmat dan limpahan karunia yang selama ini telah Alloh berikan sehingga penulis bisa

3.7.1.1 Setelah melakukan diskusi tentang gerak langkah kaki dalam senam irama, peserta didik mampu menjelaskan lima macam gerak langkah dalam aktivitas gerak berirama

− Kerahasiaan adalah layanan yang digunakan untuk menjaga isi informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang

Berdasarkan tingkat ekspresi, jumlah embrio yang mengekspresikan dan lama ekspresi gen GFP, dapat disimpulkan bahwa promoter homolog memiliki efektivitas lebih tinggi

Mengingat airtanah dapat berkontribusi dalam adaptasi dan terakumulasi di bagian utara wilayah Malang yang mempunyai risiko penurunan ketersediaan air paling tinggi