Web Script no image

Published on December 5th, 2010 | by b0z_gank

19

Tutorial PHP | Mengitung Tanggal, Umur dan Selisih Waktu

Tutorial kali ini akan membahas tentang perhitungan tanggal, misalnya untuk menambahkan tanggal, bulan bahkan tahun. Kemudian untuk perhitungan umur dan selisih waktu dengan menginputkan 2 tanggal berbeda kemudian akan menghasilkan jumlah rentang waktu tertentu.. langsung saja bagai mana caranya, mari kita simak dibawah ini..

Untuk Menjumlahkan tanggal
- misalnya sekarang tanggal 2010-12-05 dan akan menambahkan tanggal itu dengan 2 hari setelahnya maka outputnya adalah 2010-12-07.

<?php
$tgl = "2010-12-05";
$newdate = strtotime('+2 day',strtotime($tgl));
$newdate = date('Y-m-d', $newdate);
echo $newdate;
?>

atau

<?php
echo date("d-m-Y", mktime(0, 0, 0, 12, 5+2, 2010));
?>

Untuk Pengurangan tanggal
- misalnya sekarang tanggal 2010-12-05 dan akan dikurangi tanggal itu dengan 6 hari sebelumnya maka outputnya adalah 2010-11-30.

<?php
$tgl = "2010-12-05";
$newdate = strtotime('-6 day',strtotime($tgl));
$newdate = date('Y-m-d', $newdate);
echo $newdate;
?>

atau

<?php
echo date("d-m-Y", mktime(0, 0, 0, 12, 05-6, 2010));
?>

Untuk Menghitung Umur
- misalnya sekarang tanggal 2010-12-05 dan anda akan memasukkan tanggal lahir anda ex:1989-08-23 outputnya adalah umur anda 21 tahun, 3 bulan, 14 hari, 6 jam, 12 menit, 13 detik .

<?php
function datediff($tgl1, $tgl2){
 $tgl1 = (is_string($tgl1) ? strtotime($tgl1) : $tgl1);
 $tgl2 = (is_string($tgl2) ? strtotime($tgl2) : $tgl2);
 $diff_secs = abs($tgl1 - $tgl2);
 $base_year = min(date("Y", $tgl1), date("Y", $tgl2));
 $diff = mktime(0, 0, $diff_secs, 1, 1, $base_year);
 return array( "years" => date("Y", $diff) - $base_year,
"months_total" => (date("Y", $diff) - $base_year) * 12 + date("n", $diff) - 1,
"months" => date("n", $diff) - 1,
"days_total" => floor($diff_secs / (3600 * 24)),
"days" => date("j", $diff) - 1,
"hours_total" => floor($diff_secs / 3600),
"hours" => date("G", $diff),
"minutes_total" => floor($diff_secs / 60),
"minutes" => (int) date("i", $diff),
"seconds_total" => $diff_secs,
"seconds" => (int) date("s", $diff)  );
 }

echo '<form name="form1" method="post" action="">;
echo '<input type="text" name="tgl" id="tgl"><input type="submit" name="hitung" id="hitung" value="Hitung"></form>';
$a = datediff($_POST['tgl'], date("Y/m/d/ h:m:s"));
if ($_POST['tgl'])
{ echo 'umur anda '.$a[years].'
tahun, '.$a[months].'
bulan, '.$a[days].'
hari, '.$a[hours].'
jam, '.$a[minutes].'
menit, '.$a[seconds].'
detik';
}
?>

Menghitung Jumlah Hari Minggu Antara Dua Tanggal
Script ini akan menghitung jumlah hari Minggu antara tanggal 05-10-2010 s/d 05-12-2010, sekaligus menampilkan semua tanggalnya yang harinya Minggu.

<?php
$date1 = "05-10-2010";
$date2 = "05-12-2010";

// memecah bagian-bagian dari tanggal $date1
$pecahTgl1 = explode("-", $date1);

// membaca bagian-bagian dari $date1
$tgl1 = $pecahTgl1[0];
$bln1 = $pecahTgl1[1];
$thn1 = $pecahTgl1[2];

echo "<p>Tanggal yang merupakan hari minggu adalah:</p>";

// counter looping
$i = 0;

// counter untuk jumlah hari minggu
$sum = 0;

do
{
   // mengenerate tanggal berikutnya
   $tanggal = date("d-m-Y", mktime(0, 0, 0, $bln1, $tgl1+$i, $thn1));

   // cek jika harinya minggu, maka counter $sum bertambah satu, lalu tampilkan tanggalnya
   if (date("w", mktime(0, 0, 0, $bln1, $tgl1+$i, $thn1)) == 0)
   {
     $sum++;
     echo $tanggal."<br>";
   }

   // increment untuk counter looping
   $i++;
}
while ($tanggal != $date2);

// looping di atas akan terus dilakukan selama tanggal yang digenerate tidak sama dengan $date2.

// tampilkan jumlah hari Minggu
echo "<p>Jumlah hari minggu antara ".$date1." s/d ".$date2." adalah: ".$sum."</p>";

?>

Tags: , , , , ,


About the Author

berada di jalan yang benar :D



19 Responses to Tutorial PHP | Mengitung Tanggal, Umur dan Selisih Waktu

  1. Agus says:

    thx gan atas informasinya..

  2. b0z_gank says:

    oke gan.. sama2

  3. said says:

    Gan kalo menghitung tanggal tanpa menghitung hari sabtu, minggu dan hari libur nasional gimana ?

  4. b0z_gank says:

    klo menghitung tanggal dikurangi hari sabtu minggu sih tinggal pake rumus gan.. tapi klo yang hari libur nasional yah harus di set sendiri.

  5. Cupu says:

    Gan Maaf Nih Dalam Perhitungan Tanggal Gimana kalo ada tanggal libur nasional dan hari sabtu tidak di hitung, caranya gimana ?? Mohon Bantuannya

    Trims

  6. b0z_gank says:

    klo menghitung tanggal – hari libur manggu + sabtu dan hari libur nasional caranya di itung manual gan.. jadi agan inputin dulu tanggal2 hari libur nasional berapa dan dikurangin 2 ditiap minggu gan.

  7. Nets says:

    Scriptnya mantap Gan.
    Thanks

  8. Arts says:

    Salut atas tutorialnya.

  9. b0z_gank says:

    thanks gan @nets sama gan @arts

  10. iyak says:

    bro, bgm cara menampilakan data yg berulang tahun di antara dua tanggal yg kita input.

    thx utk masukkannya

    salam

  11. b0z_gank says:

    maksudnya gmn bos.. bisa kasih contohnya g permisalnnya..

  12. iyak says:

    Thx buat respon nya.
    Saya mempunyai table “tb_anggota” dan salah satu field nya “tgl_lahir”.
    Saya ingin report utk menampilkan anggota yg lahir dari tanggal “xxxx-xx-xx” sampai tanggal “xxxx-xx-xx”
    tgl=yyyy-mm-dd
    Saya sdh coba query :
    $query = “Select nm_anggota as nama from tb_anggota where tgl_lahir BETWEEN ‘$_POST[tgl_from]‘ AND ‘$_POST[tgl_to]‘”;
    Mis: kita masukkan tgl_from=’2011-11-01′ dan tgl_to=’2011-11-30′
    Maka akan tampil anggota yg lahir di antara tgl di atas, sementara apabila ada anggota yg lahir di tgl=’2009-11-20′ ngak muncul.
    Tolong mas bantuannya.
    Semoga dpt di pahami.

    Salam

  13. b0z_gank says:

    klo untuk menampilkan data. yaitu hanya dipermainan query nya.
    misal. $sqlquery = “select * from tb_anggota where id_anggota = ‘no anggota’”;
    jadi untuk menampilkan pake $query = mysql_query($sqlquery);
    $data = mysql_fetch_array($query);

    ini menampilkan tgl lahir
    $tanggal_lahir = $data['tgl_lahir'];

  14. Septia says:

    Makasih gan, membantu banget ane yang lagi galau gara-gara PHP :D

  15. derry nova says:

    thx,tutorialnya sangat membantu mas,

    maaf sebelumnya, perkenankan sya bertanya,
    misal:
    dalam satu bulan itu ada 4 minggu, dan ada beberapa minggu yg ngga full 7 hari, itu gmn ya perhitungannya? apa yg cuma 3 atau 4 hari pada minggu terakhir itu d anggap 1 minggu atau gmn?

    thx gan. :)

  16. allezzii says:

    Makasih bos gank,, tutorialnya membantu suekali.. hehe :toast

  17. Gaptek says:

    Kalau bikin tanggal kayak FB gimana gan?
    Misal, 1 menit yang lalu, 7 jam yang lalu. :2thumbup

  18. Arifin says:

    Thanks gan sudah ngasih tuturial..membantu sekali :)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[+] kaskus emoticons nartzco

Back to Top ↑