Bismillaahirrohmaanirrohiim…
Untuk mencari selisih tanggal di PHP dengan cepat dan mudah kita akan menggunakan fungsi “DateTime“.
$tgla = '2022-06-15'; $tglb = '2022-07-15'; $tgl1 = new DateTime($tgla); $tgl2 = new DateTime($tglb); $selisih = $tgl2->diff($tgl1); echo $selisih->days;//30 echo 'Selisih waktu 2 tanggal: '; echo $selisih->y . ' tahun, '; echo $selisih->m . ' bulan, '; echo $selisih->d . ' hari, '; echo $selisih->h . ' jam, '; echo $selisih->i . ' menit, '; echo $selisih->s . ' detik, '; //Selisih waktu 2 tanggal: 0 tahun, 1 bulan, 0 hari, 0 jam, 0 menit, 0 detik, echo 'Total selisih hari : ' . $selisih->days; //Total selisih hari : 30
Dengan menggunakan “DateTime” kita langsung bisa mengetahui selisih tanggal, bulan, tahun, bahkan sampai detik.
Selanjutnya untuk mendapatkan selisih tanggal dalam bentuk array, tinggal kita buat fungsinya seperti berikut:
function rangeDates($startDate, $endDate) {
$dates = [];
$startDate = strtotime($startDate);
$endDate = strtotime($endDate);
for ($i = $startDate; $i <= $endDate;$i += (86400)) {
$dates[] = date('Y-m-d', $i);
}
return $dates;
}
$tgla = '2022-06-15';
$tglb = '2022-07-15';
$rangeDates = rangeDates($tgla, $tglb);
Hasilnya:
Array
(
[0] => 2022-06-15
[1] => 2022-06-16
[2] => 2022-06-17
[3] => 2022-06-18
[4] => 2022-06-19
[5] => 2022-06-20
[6] => 2022-06-21
[7] => 2022-06-22
[8] => 2022-06-23
[9] => 2022-06-24
[10] => 2022-06-25
[11] => 2022-06-26
[12] => 2022-06-27
[13] => 2022-06-28
[14] => 2022-06-29
[15] => 2022-06-30
[16] => 2022-07-01
[17] => 2022-07-02
[18] => 2022-07-03
[19] => 2022-07-04
[20] => 2022-07-05
[21] => 2022-07-06
[22] => 2022-07-07
[23] => 2022-07-08
[24] => 2022-07-09
[25] => 2022-07-10
[26] => 2022-07-11
[27] => 2022-07-12
[28] => 2022-07-13
[29] => 2022-07-14
[30] => 2022-07-15
)
Selisih tanggal dengan strtotime
$tanggal_awal = '2025-02-04';
$timestamp_tanggal_awal = strtotime($tanggal_awal);
$seminggu_lalu = date('Y-m-d', strtotime('-1 week', $timestamp_tanggal_awal));
$sebulan_lalu = date('Y-m-d', strtotime('-1 months', $timestamp_tanggal_awal));
dst
Nah, mudah bukan….
Semoga bermanfaat.