Home » Tutorial » Cara Mencari Hari Minggu Diantara 2 Tanggal Dengan PHP

Cara Mencari Hari Minggu Diantara 2 Tanggal Dengan PHP

by Sutiono S.Kom., M.Kom ., M.T.I
by Sutiono S.Kom., M.Kom ., M.T.I

Kode php untuk mencari hari minggu diantara 2 tanggal yang dapat digunakan untuk keperluan pembuatan program.

$tglmulai = new DateTime('2020-03-06');
$tglakhir = new DateTime('2020-03-20');
$days = $tglmulai->diff($tglakhir, true)->days;

$minggu = intval($days / 7) + ($tglmulai->format('N') + $days % 7 >= 7);

echo $minggu;

Berikut penjelasannya

$tglmulai = new DateTime('2020-03-06');
$tglakhir = new DateTime('2020-03-20');

Pertama pastikan variabel yang digunakan ke datetime terlebih dahulu, tanggal di sini dapat di ganti menjadi variabel seperti di bawah ini

$tglmulai = new DateTime($tglawal);
$tglakhir = new DateTime($tglakhir);
$days = $tglmulai->diff($tglakhir, true)->days;

Selanjutnya, gunakan DateTime :: diff untuk menemukan perbedaan dari $tglmulai hingga $tglakhir (meneruskan true di sini sebagai parameter kedua memastikan bahwa nilai ini selalu positif), dan untuk mendapatkan jumlah hari di antara keduanya.

$minggu = intval($days / 7) + ($tglmulai->format('N') + $days % 7 >= 7);

Ini dia yang utama untuk mencari hari minggunya- tapi sebenarnya tidak terlalu rumit. Pertama, kita tahu ada satu hari Minggu untuk setiap minggu, jadi kita memiliki setidaknya $days / 7 hari Minggu untuk memulai, dibulatkan ke bawah ke int terdekat dengan intval.

Selain itu, mungkin ada hari Minggu dalam rentang waktu kurang dari seminggu; misal, Jumat sampai Senin minggu depan berisi 4 hari; salah satunya adalah hari Minggu. Jadi, tergantung kapan kita memulai dan mengakhiri, mungkin ada yang lain. Ini mudah untuk diperhitungkan:

$tglmulai -> format (‘N’) (lihat DateTime :: format) memastikan hari dalam format ISO-8601 dalam seminggu untuk tanggal mulai, yang merupakan angka dari 1 hingga 7 (1 adalah Senin, 7 adalah Minggu).
$days % 7 memberi kami jumlah hari tersisa yang tidak terbagi menjadi beberapa minggu.
Jika hari awal kita dan jumlah hari yang tersisa berjumlah 7 atau lebih, maka kita mencapai hari Minggu. Mengetahui itu, kita hanya perlu menambahkan ekspresi itu, yang akan memberi kita 1 jika benar atau 0 jika salah, karena kita menambahkannya ke nilai int.

Dan begitulah! Keuntungan dari metode ini adalah tidak memerlukan iterasi setiap hari antara waktu yang ditentukan dan memeriksa apakah ini hari Minggu, yang akan menghemat banyak komputasi, dan juga akan membuat Anda terlihat sangat pintar. Semoga membantu!

You may also like