Categories: PHP

Mencari selisih tanggal di PHP cepat dan mudah

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.

Bagikan
rasupe

Recent Posts

Source code Template website sekolah dengan react js

Bismillaahirrohmaanirrohiim... Berikut ini source code yang dapat dimodifikasi untuk membuat front end website sekolah dengan…

10 hours ago

Subdomain pada cyberpanel tidak dapat diakses

Bismillaahirrohmaanirrohiim... Jika domain dan sub domainnya berada dalam satu vps cyberpanel, maka seringkali jadi tidak…

5 days ago

10 Aplikasi Kasir Terbaik di Indonesia (2025)

Bismillaahirrohmaanirrohiim... Dalam era digital saat ini, penggunaan aplikasi kasir (Point of Sale/POS) menjadi solusi penting…

6 days ago

Website di aapanel sering mati sendiri

Bismillaahirrohmaanirrohiim... Saat browsing-browsing saya seringkali melihat iklan aapanel, sekilas membuat penasaran sampai akhirnya saya mencoba…

1 week ago

Reset password cyberpanel via SSH

Bismillaahirrohmaanirrohiim... Berikut ini perintah untuk reset password admin cyberpanel melalui SSH command line. pastikan login…

1 week ago

Template Blogger Blogspot Gratis dan Bagus

Bismillaahirrohmaanirrohiim... Berikut ini beberapa template blogspot yang dapat anda gunakan secara gratis namun tampilannya bagus.…

2 months ago