Ini adalah kalender sederhana dari PHP dan HTML, yang dibuat cuma pake <table>. Kalender ini gak tahu kapan libur, dan kapan gak libur. Ya aku juga biasanya gak tahu sih.
Singkat cerita, script ini menerima inputan bulan dan tahun menggunakan $_GET[‘month’] dan $_GET[‘year’], dengan default value tahun dan bulan saat script ini dijalankan.
Demo ada disini.
- Dengan inputan bulan dan tahun : https://rinaldo.id/demo/demo-simplecalendar.php?month=11&year=2017
- Default value : https://rinaldo.id/demo/demo-simplecalendar.php
Penjelasan :
- Line 2-3 : Ini adalah komentar.
- Line 5-13 bertugas ngecek kalau $_GET gak menghasilkan apa apa. Siapa tahu gak ada isinya, buat $year dan $month dari tahun dan bulan sekarang.
- Line 18-27, table tag dan header
- Line 30-39, periksa kalau bulan sebelumnya bernilai 0 (bulan sekarang – 1). Kalau 0, kurangi year2 ke tahun sebelumnya, dan lastmonth ke 12.
- Line 41-42, hitung jumlah hari bulan ini dan bulan kemarin.
- Line 44 : Cek hari pada tanggal 1 bulan ini,
- Line 45 : Kalau tanggal 1 hari bukan hari minggu, tanggal mulai kalender adalah jumlah hari bulan kemarin dikurang nama hari ini (dalam angka) ditambah 1.
- Line 47 : Kalau tanggal 1 hari minggu, mulai kalender dari tanggal 1.
- Line 55 : Counter = 0
- Line 57-73
- Line 57 : Kalau tanggal mulai kalender bukan 1, jalankan loop for.
- Line 59 : Dari tanggal mulai kalender sampai tanggal terakhir bulan kemarin, jalankan command dibawah :
- Increment counter
- Kalau counter = 1; buka baris baru tabel.
- Echo $loop yang dimiringkan.
- Kalau counter % 7 = 0; tutup baris tabel. Lalu, reset counter ke 0.
- Line 74-87
- Line 74 : Jalankan for dari tanggal 1 sampai hari terakhir bulan ini
- Counter tidak direset. Kalau 1, buka baris. Kalau 7, reset counter dan tutup baris.
- Echo $loop di baris 81.
- Line 89-100;
- Kalau counter tidak sama dengan 0, buat kalender dari bulan sebelumnya sampai counter sama dengan 7.
- Kalau counter % 7 = 0; tutup baris tabel. Lalu, reset counter ke 0.
Code ini bagian dari Ridar Sales Report yang aku sedang buat.