Membuat Kalender Dengan PHP

Halo sobat malasngoding.com masih kita pelajari masalah fungsi tanggal. Menurut saya pribadi kasus ini sangat menarik karena sering Kita jumpai dalam kehidupan sehari-hari.
Membuat kalender dengan PHP adalah kasus yang akan Kita selesaikan dimana dalam kasus ini sangat berhubungan erat dengan materi sebelumnya. Dalam materi sebelumnya sudah kita bahas bagaimana menampilkan tanggal dan jumlah hari dalam satu bulan.
Membuat Kalender Dengan PHP
Dalam kasus ini Kita akan menampilkan tanggal dan bulan dalam satu tahun dalam hal ini dikenal dengan kalender. Untuk kamu yang mungkin belum memahami materi sebelumnya kami bisa membaca di list materi berikut.
Baiklah sebagai contoh awal kita akan coba menampilkan tanggal dalam satu bulan penuh, dimana tahun dan bulan yang ditampilkan adalah tahun saat ini (pada saat artikel ini dibuat). Baik Pertahikan contoh berikut.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<!DOCTYPE html> <html> <head> <title>Malasngoding.com - Membuat Kalender Menggunakan PHP</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <div class="container mt-3"> <div class="row"> <div class="col"> <?php $tahun = date('Y'); $hari = date('j'); $bulan = date('n'); $jumlah_hari = cal_days_in_month(CAL_GREGORIAN, $bulan, $tahun); $hari_pertama = date('w', strtotime($tahun . '-' . $bulan . '-01')); $nama_bulan = array('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'); $nama_hari = array('Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'); ?> <table class="table table-bordered"> <thead> <th colspan="7" style="text-align: center;"><?php echo $nama_bulan[$bulan-1] ?> <?php echo $tahun ?></th> <tr> <?php foreach ($nama_hari as $hariNama) { ?> <th><?php echo $hariNama ?></th> <?php } ?> </tr> </thead> <tbody> <tr> <?php for ($x = 0; $x < $hari_pertama; $x++) { ?> <td>-</td> <?php } for ($hari_ke = 1; $hari_ke <= $jumlah_hari; $hari_ke++) { $jumlah_hari_seminggu = date('w', strtotime($tahun . '-' . $bulan . '-' . $hari_ke)); if ($hari_ke == $hari) { ?> <td><?php echo $hari_ke ?></td> <?php } else { ?> <td><?php echo $hari_ke ?></td> <?php } if ($jumlah_hari_seminggu == 6) { ?> <tr></tr> <?php } } for ($x = $jumlah_hari_seminggu; $x < 6; $x++) { ?> <td>-</td> <?php } ?> </tr> </tbody> </table> <?php ?> </div> </div> </div> </body> </html> |
Hasil dari kodingan diatas dapat dilihat pada gambar berikut

Penjelasan Kode diatas
Untuk lebih jelas saya akan menjelaskan penggunaan beberapa kodingan pokok yang digunakan dalam membuat kalender ini. Penjelasannya dapat di basa pada list berikut
- $tahun = date(‘Y’); digunakan untuk mengambil tahun sekarang.
$bulan = date('n');
digunakan untuk mengambil bulan yang sedang berjalan$hari = date('j');
digunakan untuk mengambil tanggal hari ini.-
$jumlah_hari = cal_days_in_month(CAL_GREGORIAN, $bulan, $tahun);
digunakan untuk mengambil jumlah hari dalam bulan ini. $hari_pertama = date('w', strtotime($tahun . '-' . $bulan . '-01'));
digunakan untuk melihat hari pertama pada bulan ini jatuh pada hari apa.$nama_bulan = array('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember');
digunakan untuk menyimpan nama bulan.$nama_hari = array('Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu');
digunakan untuk menyimpan nama hari.
1 2 3 4 5 6 7 8 |
<?php // menampilkan nama hari mulai dari minggu foreach ($nama_hari as $hariNama) { ?> <th><?php echo $hariNama ?></th> <?php } ?> |
Membuat Kalender Dengan PHP
Baik Selanjutnya kita akan coba membuat kalender penuh dengan menampilkan tahun, bulan dan tanggal untuk satu tahun. Caranya ? Perhatikan kodingan dibawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
<!DOCTYPE html> <html> <head> <title>Malasngoding.com - Membuat Kalender Menggunakan PHP</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <div class="container mt-3"> <div class="row"> <div class="col"> <?php $tahun = date('Y'); $hari = date('j'); for($i=1; $i<=12; $i++){ // Dapatkan jumlah hari dalam bulan saat ini $bulan = $i; $jumlah_hari = cal_days_in_month(CAL_GREGORIAN, $bulan, $tahun); // Dapatkan hari pertama dalam bulan ini $hari_pertama = date('w', strtotime($tahun . '-' . $bulan . '-01')); $nama_bulan = array('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'); $nama_hari = array('Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'); ?> <table class="table table-bordered"> <thead> <th colspan="7" style="text-align: center;"><?php echo $nama_bulan[$bulan-1] ?> <?php echo $tahun ?></th> <tr> <?php foreach ($nama_hari as $hari_) { ?> <th><?php echo $hari_ ?></th> <?php } ?> </tr> </thead> <tbody> <tr> <?php for ($x = 0; $x < $hari_pertama; $x++) { ?> <td>-</td> <?php } for ($nomor_hari = 1; $nomor_hari <= $jumlah_hari; $nomor_hari++) { $hari_seminggu = date('w', strtotime($tahun . '-' . $bulan . '-' . $nomor_hari)); if ($nomor_hari == $hari) { ?> <td><?php echo $nomor_hari ?></td> <?php } else { ?> <td><?php echo $nomor_hari ?></td> <?php } if ($hari_seminggu == 6) { ?> <tr></tr> <?php } } // Output sel kosong setelah hari terakhir dalam bulan for ($x = $hari_seminggu; $x < 6; $x++) { ?> <td>-</td> <?php } ?> </tr> </tbody> </table> <?php } ?> </div> </div> </div> </body> </html> |
Hasilnya dapat dilihat pada gambar berikut ini

Jika dilihat dari kodingan diatas antara kodingan pertama dan kedua hampir sama. Yang membedakan adalah perulangan awal pada kasus kedua digunakan untuk mengambil dari bulan pertama (januari) sampai dengan bulan 12 (Desember).
Kesimpulan
Kalender adalah kata yang sudah umum kita dengar bahkan Kita gunakan. Membuat kalender menggunakan PHP adalah kreativitas tersendiri dimana percobaan menyelesaikan kasusu menggunakan fungsi yang sudah di sediakan.
Bagi kamu yang membutuhkan source code ini kamu dapat mendownloadnya di github saya disini.
Tutorial Menarik Lainnya

Membuat Form Login Dengan PHP Tanpa Database


Menghitung Selisih Waktu Dengan PHP


Membuat CRUD menggunakan Ajax PHP – Hapus Data

