• Kategori Tulisan

  • Masukkan alamat email Anda untuk berlangganan blog Ri32 dan menerima pemberitahuan posting baru melalui email anda. Jika sudah bosan silahkan unsubscript.
    Terima kasih... : )

    Join 919 other subscribers

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 ”
“; echo “Jam Selesai : “.$jam_selesai=’09:45:01′; echo ”
“; $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 ”


“;

Menghitung selisih waktu

echo “Jam Masuk : “.$jam_masuk=”08:30:09″; echo ”
“; echo “Jam Keluar : “.$jam_keluar=”09:45:01″; echo ”
“; 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

Download Sourcecode

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

Depok, 02-03-2011

KangAgus

14 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

    Like

    • 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 🙂

      Like

  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

    Like

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

    Like

    • 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 🙂

      Like

  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.

    Like

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

    Like

  6. kalau java gimana mas???

    Like

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

    Like

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

    Like

  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

    Like

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

    Like

  11. gan ko ga bisa di download ya..

    Like

  12. gan, mohon bantuannya. gmn cara untuk mendapatkan total seluruh waktu kerja dari semua karyawan ?

    ibaratkan databesenya seperti ini tabelnya.
    misalnya :
    Nama : Dedi Rusdandi

    | jam masuk 1 | jam keluar 1 | waktu kerja | jam masuk 2 | Jam Keluar 2 | Waktu Kerja | Total waktu kerja |
    |_____________|______________|_____________|_____________|______________|_______________|_____________________|
    | 09:00 AM | 11:45 PM | 02:45 | 03.00 PM | 05.00 PM | 02.00 | harusnya jawabnya |
    | | | | | | | (04.45) |
    | | | | | | | gmn nih gan caranya |
    |_____________|______________|_____________|_____________|______________|_______________|_____________________|

    Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.