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)&nbsp; );
}

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

?>