Baiklah langsung saja yuk kita membuatnya dengan mengikuti tutorial membuat kalender hijriah menggunakan PHP.
Pertama buatlah sistem untuk kalender hirjiahnya menggunakan file dengan extensi .php sebagai contoh punya saya kalender-hijriah.php lalu copy dan pastelah script berikut:
<?php
function hijriah(){
$theDate = getdate();
$wday = $theDate[wday];
$hr = $theDate[mday];
$theMonth = $theDate[mon];
$theYear = $theDate[year];
if (($theYear > 1582) || (($theYear == 1582) && ($theMonth > 10)) || (($theYear == 1582) && ($theMonth == 10) && ($hr > 14))) {
$zjd = (int)((1461 * ($theYear + 4800 + (int)(($theMonth - 14) / 12))) / 4) + (int)((367 * ($theMonth - 2 - 12 * ((int)(($theMonth - 14) / 12)))) / 12) - (int)((3 * (int)((($theYear + 4900 + (int)(($theMonth - 14) / 12)) / 100))) / 4) + $hr - 32075;
} else {
$zjd = 367 * $theYear - (int)((7 * ($theYear + 5001 + (int)(($theMonth - 9) / 7))) / 4) + (int)((275 * $theMonth) / 9) + $hr + 1729777;
}
$zl = $zjd - 1948440 + 10632;
$zn = (int)(($zl-1)/10631);
$zl = $zl - 10631 * $zn + 354;
$zj = ((int)((10985 - $zl)/5316))*((int)((50 * $zl)/17719))+((int)($zl/5670))*((int)((43 * $zl)/15238));
$zl = $zl-((int)((30 - $zj)/15))*((int)((17719 * $zj)/50))-((int)($zj/16))*((int)((15238 * $zj)/43))+29;
$theMonth = (int)((24 * $zl)/709);
$hijriDay = $zl-(int)((709 * $theMonth)/24);
$hijriYear = 30 * $zn + $zj - 30;
if ($theMonth==1){ $hijriMonthName = "Muharram";}
if ($theMonth==2){ $hijriMonthName = "Safar";}
if ($theMonth==3){ $hijriMonthName = "Rabiul Awal";}
if ($theMonth==4){ $hijriMonthName = "Rabiul Akhir";}
if ($theMonth==5){ $hijriMonthName = "Jamadil Awal";}
if ($theMonth==6){ $hijriMonthName = "Jamadil Akhir";}
if ($theMonth==7){ $hijriMonthName = "Rejab";}
if ($theMonth==8){ $hijriMonthName = "Syaaban";}
if ($theMonth==9){ $hijriMonthName = "Ramadhan";}
if ($theMonth==10){ $hijriMonthName = "Syawal";}
if ($theMonth==11){ $hijriMonthName = "Zulkaedah";}
if ($theMonth==12){ $hijriMonthName = "Zulhijjah";}
if ($wday==0) { $hijriDayString = "Al-Ahad"; }
if ($wday==1) { $hijriDayString = "Al-Itsnain"; }
if ($wday==2) { $hijriDayString = "Ats-tsulatsa'"; }
if ($wday==3) { $hijriDayString = "Al-Arbi'aa"; }
if ($wday==4) { $hijriDayString = "Al-Khomis"; }
if ($wday==5) { $hijriDayString = "Al-Jumuah"; }
if ($wday==6) { $hijriDayString = "As-Sabt"; }
return $hijriDayString .' ' . $hijriDay . ' ' . $hijriMonthName . ' ' . $hijriYear;
}
?>
Lalu Anda save. setelah itu buatlah file dengan extensi php untuk menampilkannya pada browser Anda dan menempatkannya seperti script berikut.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> Ini adalah kalender hijriah dengan PHP : <?php include "kalender-hijriah.php"; echo hijriah(); ?> </body> </html>Lalu Anda save kembali dan lihatlah hasilnya.
Lebih kurang format tampilannya seperti ini Ahad 13 Safar 1433
Silahkan Anda kreasikan sesuai dengan selera Anda.
*note:
script ini hanya suport pada webhosting, jika di localhost yang belum di setting sistemnya akan menampilkan pesan pemberitahuan.









sebelum trima kasih skript anda sangat membantu saya...namun ada yang saya tanyakan..setelah skript anda tak coba maka keluar tanggal 6 ramadhan 1433 H agar tanggal keluar nya menjadi 5 ramadhan 1433 H bagaimana cara mengubahnya atau mas sudah membuat dua versi karena tanggal 1 ramadhan ada yang beda ada kalau pemerintahkan 1 RAMADHANYA hari sabtu tanggal 21 juli 2012..mohon bimbinganya...jazakallohu khaira
silahkan ubah dulu zona waktunya mas pada waktu indonesia,,
mas bisa memasukkan kode ini utk zona waktu indonesia sebelum kode waktu hijirahnya
date_default_timezone_set("Asia/Jakarta");
terima kasih
Kalau sebaliknya gimana?
Maksudnya: dari Hijriah ke Masehi.
Misal mau tahu 1 Syawwal 1205H, jatuh pada tanggal, bulan dan tahun Masehi ?
Makasih
Bagaimana pula script Php nya jika dari Hijriah ke Masehi?
Makasih
@inets: untuk tahun masehi tidak perlu memakai konfersi lagi dari tahun hijriah, sebab waktu pada server sudah settingan masehi,, hanya saja hanya perbedaan selisih waktu. untuk menampilkannya cukup dengan menambahkan fungsi date();
berikut contoh menampilkanya
<?php
echo date("Y-m-d H:i:s"); //Waktu server Apache
echo ' – Server <br>';
echo gmdate("Y-m-d H:i:s"); //Waktu GMT
echo ' – GMT <br>';
echo gmdate("Y-m-d H:i:s", time()+60*60*7); //WIB
echo ' – WIB <br>';
?>
untuk lebih jelas tentang pengaturan waktu silahkan lihat http://php.net/date
Terima kasih
Terima kasih atas jawabannya.
Namun yang aku maksudkan adalah gimana memodifikasi script PHP di atas agar dapat secara interaktif dengan menginput tanggal, bulan dan tahun Islam, Misal inputnya : 1 Syawwal 1230 , Maka program akan memberikan hasil dalam format Masehi. Misal hasilnya : 17 Agustus 1945
Terima kasih