Menghitung selisih waktu dan menjumlahkan waktu dengan PHP


Ada teman saya mas Athaya yang bertanya :

saya ingin menjumlahkan waktu menggunakn PHP. dengan format hh:mm:ss misal jam mulai : 08:30 jam selesai : 09:45 jam mulai + jam selesai = …. tolong mas buatin web + databasenya yang sederhana aja mas. saya lihat-lihat di web mas, postingannya tepat terus mas serta ada web contohnya.

Serba Serbi WaktuMemprediksi tanggal yang akan datang :

$tambahwaktu = date(“d F Y”, mktime(0,0,0,date(“m”),date(“d”)+3,date(“Y”))); echo (“Tiga hari yg akan datang jatuh pada tgl $tambahwaktu”);

Memprediksi tanggal yang sudah berlalu

$kurangtanggal = date(“d F Y”, mktime(0,0,0,date(“m”),date(“d”)-14,date(“Y”))); echo (“Dua minggu yg lalu jatuh pada tgl $kurangtanggal”);

Menjumlahkan dua waktu

echo “Jam Mulai : “.$jam_mulai=’08:30:09′; echo “<br>”; echo “Jam Selesai : “.$jam_selesai=’09:45:01′; echo “<br>”; $times = array($jam_mulai,$jam_selesai); //$times = array(’08:30:22′,’09:45:53′); $seconds = 0; foreach ( $times as $time ) { list( $g, $i, $s ) = explode( ‘:’, $time ); $seconds += $g * 3600; $seconds += $i * 60; $seconds += $s; } $hours = floor( $seconds / 3600 ); $seconds -= $hours * 3600; $minutes = floor( $seconds / 60 ); $seconds -= $minutes * 60; echo “Hasil penjumlahan : {$hours}:{$minutes}:{$seconds}”; echo “<hr>”;

Menghitung selisih waktu

echo “Jam Masuk : “.$jam_masuk=”08:30:09″; echo “<br>”; echo “Jam Keluar : “.$jam_keluar=”09:45:01″; echo “<br>”; function selisih($jam_masuk,$jam_keluar) { list($h,$m,$s) = explode(“:”,$jam_masuk); $dtAwal = mktime($h,$m,$s,”1″,”1″,”1″); list($h,$m,$s) = explode(“:”,$jam_keluar); $dtAkhir = mktime($h,$m,$s,”1″,”1″,”1″); $dtSelisih = $dtAkhir-$dtAwal; $totalmenit=$dtSelisih/60; $jam =explode(“.”,$totalmenit/60); $sisamenit=($totalmenit/60)-$jam[0]; $sisamenit2=$sisamenit*60; $jml_jam=$jam[0]; return $jml_jam.” jam “.$sisamenit2.” menit”; } echo “WAktu Kerja : “.selisih($jam_masuk,$jam_keluar);

Menghitung selisih dua Tanggal

<?php $tgl1 = “2009-10-01″;  // 1 Oktober 2009 $tgl2 = “2009-10-10″;  // 10 Oktober 2009 // memecah tanggal untuk mendapatkan bagian tanggal, bulan dan tahun // dari tanggal pertama $pecah1 = explode(“-“, $tgl1); $date1 = $pecah1[2]; $month1 = $pecah1[1]; $year1 = $pecah1[0]; // memecah tanggal untuk mendapatkan bagian tanggal, bulan dan tahun // dari tanggal kedua $pecah2 = explode(“-“, $tgl2); $date2 = $pecah2[2]; $month2 = $pecah2[1]; $year2 =  $pecah2[0]; // menghitung JDN dari masing-masing tanggal $jd1 = GregorianToJD($month1, $date1, $year1); $jd2 = GregorianToJD($month2, $date2, $year2); // hitung selisih hari kedua tanggal $selisih = $jd2 – $jd1; echo “Selisih kedua tanggal adalah “.$selisih.” hari”; ?>

Hasil Output

Penggunaan Database Download

http://www.4shared.com/file/44l-y2yE/jam-waktu.html

Referensi

Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…amin

Depok, 02-03-2011

noname

About these ads

12 Responses

  1. sebelumnya makasih banget mas….
    tapi ada masalah lagi nih…

    pas di coba script ini mas. keluar yang beginian.

    Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Krasnoyarsk’ for ‘7.0/no DST’ instead in C:\xampp\htdocs\jam-waktu\waktu.php on line 33

    • di skrip itu pakai seting waktu D-m-s sama seperti format date di mysql nya.

      sepertinya seting waktu di komputer/server mas yang belum mendukung.

      1. coba lihat di try icon komputer mas yang menampilkan jam (pojok kanan bawah)
      2. klik 2 kali
      3. pilih tab time zone, pilih GMT+7 Jakarta
      4. OK

      iya, saya memakai XAMPP 1.7. selama ini tidak ada masalah dengan fungsi waktu. mungkin coba di komputer yang lain dulu. mudah2an ada solusinya :)

  2. mas kalau mau nampilin waktunya dalam script ini gmana yah ?
    saya udah nyoba tapi kok gak muncul2 ? hehehe.
    tolong mas..

    kan kalo punya mas nampilinya waktu kerjanya pk script ini :

    echo “Waktu Kerja : “.ddata($jam_masuk,$jam_keluar);

    lebih jelasnya saya udah publish scriptnya di blogspot saya.

    athayaweb.blogspot.com.

    tolong mas…ok

  3. ketemu mas… thanks yah..

    mas agus, kalo hasil pengurangan waktu kan udah ketemu nih mas.
    contoh :
    masuk 09:00 – keluar 11:45 = waktu kerja 02:45.

    nah dari sini saya ingin menyimpan hasil waktu kerja itu (waktu kerja 02:45.) ke dalam database.
    gimana tuh mas caranya. tanpa perlu di entry (otomatis) jadi kita hanya input jam masuk sama jam keluar aja mas. ???

    ibaratkan databesenya seperti ini tabelnya.

    _______________________________
    | jam masuk | jam keluar | waktu kerja |
    |__________|_________|__________|
    | 09:00 | 11:45 | 02:45. |
    | | | |
    |__________|_________|__________|

    apakah mungkin mas ?? tolong pencerahnnya..

    • bisa aja. mungkin logikanya :
      1. dapatkan primary id di tabel tersebut. misalnya id_waktu
      2. dapatkan juga data field jam_masuk, jam_keluar dari masing2 id_waktu tersebut
      3. untuk periode perhitungannya terserah anda misalnya setiap akhir bulan akan di hitung waktu kerja semua karyawan. atau waktu anda tekan tombol proses, maka akan di hitung lama waktu kerjanya.
      4. setelah di hitung lama waktu kerja dan dapat hasilnya, update data tersebut ke field waktu_kerja untuk masing-masing id_waktu
      5. selesai

      CMIIW :)

  4. wah saya udah nyoba mas. bingung haha. maklum masih belajar.

    jam_masuk 09:00 – jam_ keluar 11:45 = waktu_kerja 02:45.

    jam masuk dan jam keluar sudah tersimpan di database, tapi yang saya bingung hasil penghitungan waktu_kerja nya supaya tersimpan (otomatis) ke databasenya gimana ya? minta pencerahan lagi mas…

    ato kembangin aja mas
    “Menghitung selisih waktu dan menjumlahkan waktu dengan PHP” supaya tersimpan secara otomatis di database. hehehe. jadi saya gak nambah bingun.ngarep.

    tolong donk, bingung saya… saya berharap mas agus.

  5. mas….gimana mas…hehehe… menunggu… jawabam…

  6. kalau java gimana mas???

  7. Mas kalo mencari selisih tanggal tanpa menghitung tanggal merah atau hari minggu gimana caranya ??

  8. [...] Gambar 2 Klik disini Ayo Berbagi :EmailTwitterFacebookPrintLike this:SukaBe the first to like this [...]

  9. mas mw nanya kalau membuat tanggal berikutnya tidak bisa melebihi tanggal sebelumnya, misalnya tanggal pesan 06 mey 2010 dan tanggal pengambilannya tidak bisa sebelum tanggal 06 mey 2010 itu gmana..?

    trima kasih

  10. gan mo tanya klo penguranganya Tanggal jam gmn??
    yyyymmdd biasa tp ada waktunya sampai detik

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 522 other followers

%d bloggers like this: