Membuat fungsi Tanggal Hijriah-Masehi-Jawa dengan PHP

Awalnya cuma iseng ingin mencari script untuk membuat tanggal otomatis di akhir dan awal bulan, yang merupakan bagian dari tuntutan project yang sedang dikerjakan.Eh… ga nyangka sekali dayung 2-3 pulau kelewatan, hehehe…..
Maksudnya script tanggal otomatis ketemu dengan baris script yang lumayan simple dan singkat, ketemu juga sebuah script untuk mengetahui tanggal berdasarkan 3 bentuk, yaitu Masehi seperti yang kita ketahui sekarang, Tanggalan Hijriah yang notabene sudah banyak ditemui dengan bahasa pemrograman JavaScript dan Tanggalan Jawa yang bisa mengetahui hari dari tanggal yang dimaksud dalam Kalender jawa.

Sebetulnya Script ini sudah beredar sejak tahun 2006, tapi ga ada salahnya untuk disampaikan lagi kepada semua guna menambah koleksi scriptnya. Ga usah basa basi langsung aja, Berikut script dan contoh pengunaannya.

Dalam Scrpit ini terdapat 2 Fungsi utama yang mengatur kerjanya, yaitu Fungsi intPart dan Fungsi hdate,

Fungsi intPart
——————
function intPart($floatNum) {
return($floatNum<-0.0000001? ceil($floatNum-0.0000001) : floor($floatNum+0.0000001));
}

Fungsi hdate
——————
hdate merupakan format tanggal/waktu hijriah, silakan cek di manual PHP, dan berikut script Function hdate, tapi berhubung scriptnya begitu puuuaaaaanjaaaang bangeeeeet jadi di cariin aja yang udah di modifikasi biar simple (simple copy pastenya), hehehe.

function hdate($day,$month,$year) {
$julian = GregorianToJD($month, $day, $year);
if($julian>=1937808 && $julian<=536838867) {
$date = cal_from_jd($julian, CAL_GREGORIAN);
$d = $date[day]; $m = $date[month] – 1; $y = $date[year];

$mPart = ($m-13)/12;
$jd = intPart((1461*($y+4800+intPart($mPart)))/4)+
intPart((367*($m-1-12*(intPart($mPart))))/12)-
intPart((3*(intPart(($y+4900+intPart($mPart))/100)))/4)+$d-32075;

$l = $jd-1948440+10632;
$n = intPart(($l-1)/10631);
$l = $l-10631*$n+354;
$j = (intPart((10985-$l)/5316))*(intPart((50*$l)/17719))+(intPart($l/5670))*(intPart((43*$l)/15238));
$l = $l-(intPart((30-$j)/15))*(intPart((17719*$j)/50))-(intPart($j/16))*(intPart((15238*$j)/43))+29;

$m = intPart((24*$l)/709);
$d = $l-intPart((709*$m)/24);
$y = 30*$n+$j-30;
$yj = $y+512;
$h = ($julian+3)%5;
if($julian<=1948439) $y–;

return array(
‘day’=>$date[day], ‘month’=>$date[month], ‘year’=>$date[year], ‘dow’=>$date[dow],
‘hijriday’=>$d, ‘hijrimonth’=>$m, ‘hijriyear’=>$y, ‘javayear’=>$yj, ‘javadow’=>$h
);
}
else return false;
}

Simple kan…..heheheh

dah selesai…
Belum masih ada 1 script lagi, cz kalo cuma pake script ini, seperti contoh pemakaiannya berikut :

<?php
function intPart($floatNum) {…..}
function hdate($day,$month,$year) {…..}

print_r(hdate(17,8,1945));
?>

Maka hasilnya :

Array
(
[day] => 17
[month] => 8
[year] => 1945
[dow] => 5
[hijriday] => 8
[hijrimonth] => 9
[hijriyear] => 1364
[javayear] => 1876
[javadow] => 3
)

Nah untuk itu kita buatkan nilai-nilai dari array tersebut seperti :

1. untuk nilai array [dow] => 0=Sunday/Minggu, 1=Monday/Senin, …dst…
2. nilai array [javadow] => 0=Pon, 1=Wage, 2=Kliwon, 3=Legi, 4=Pahing
3. nilai array [month] => 1=Januari, 2=Februari, …dst…
4. nilai array [hijrimonth] => 1=Muharram/Suro, 2=Safar/Sapar, …dst…

berikut script array :
$imonth = Array( ‘Januari’,’Februari’,’Maret’,’April’,’Mei’,’Juni’,’Juli’,’Agustus’,’September’,’Oktober’,’November’,’Desember’);
$amonth = Array( ‘Muharram’,’Safar’,’Rabi\’ul Awal’,’Rabi\’ul Akhir’,’Jumadil Awal’,’Jumadil Akhir’,’Rajab’,’Sya\’ban’,’Ramadhan’,’Syawal’,’Dzul Qa\’dah’,’Dzul Hijjah’);
$jmonth = Array( ‘Suro’,’Sapar’,’Mulud’,’Ba\’da Mulud’,’Jumadil Awal’,’Jumadil Akhir’,’Rejeb’,’Ruwah’,’Poso’,’Syawal’,’Dulkaidah’,’Besar’);

$aday = Array(‘Al-Ahad’,’Al-Itsnayna’,’Ats-Tsalatsa\”,’Al-Arba\’a\”,’Al-Hamis’,’Al-Jum\’a’,’As-Sabt’);
$iday = Array(‘Minggu’,’Senin’,’Selasa’,’Rabu’,’Kamis’,’Jumat’,’Sabtu’);
$jday = Array(‘Pon’,’Wage’,’Kliwon’,’Legi’,’Pahing’);

array ditandai dengan inisial depannya, seperti i,a dan j untuk Indonesia, Arab dan Jawa.

berikut penggunaannya :

<?php
function intPart($floatNum) {…..}
function hdate($day,$month,$year) {…..}

$imonth = Array( ‘Januari’,’Februari’,’Maret’,’April’,’Mei’,’Juni’,’Juli’,’Agustus’,’September’,’Oktober’,’November’,’Desember’);
$amonth = Array( ‘Muharram’,’Safar’,’Rabi\’ul Awal’,’Rabi\’ul Akhir’,’Jumadil Awal’,’Jumadil Akhir’,’Rajab’,’Sya\’ban’,’Ramadhan’,’Syawal’,’Dzul Qa\’dah’,’Dzul Hijjah’);
$jmonth = Array( ‘Suro’,’Sapar’,’Mulud’,’Ba\’da Mulud’,’Jumadil Awal’,’Jumadil Akhir’,’Rejeb’,’Ruwah’,’Poso’,’Syawal’,’Dulkaidah’,’Besar’);

$aday = Array(‘Al-Ahad’,’Al-Itsnayna’,’Ats-Tsalatsa\”,’Al-Arba\’a\”,’Al-Hamis’,’Al-Jum\’a’,’As-Sabt’);
$iday = Array(‘Minggu’,’Senin’,’Selasa’,’Rabu’,’Kamis’,’Jumat’,’Sabtu’);
$jday = Array(‘Pon’,’Wage’,’Kliwon’,’Legi’,’Pahing’);

$date = hdate(17,8,1945);
echo ‘Tanggal 17/08/1945<br>’;
echo ‘Tanggal umum = ‘.$iday[ $date[dow] ].’ ‘.$jday[ $date[javadow] ].’, ‘.$date[day].’ ‘.$imonth[ $date[month]-1 ].’ ‘.$date[year].'<br>’;
echo ‘Tanggal jawa = ‘.$iday[ $date[dow] ].’ ‘.$jday[ $date[javadow] ].’, ‘.$date[hijriday].’ ‘.$jmonth[ $date[hijrimonth]-1 ].’ ‘.$date[javayear].'<br>’;
echo ‘Tanggal hijriah = ‘.$aday[ $date[dow] ].’, ‘.$date[hijriday].’ ‘.$amonth[ $date[hijrimonth]-1 ].’ ‘.$date[hijriyear].'<br>’;
?>

hasilnya :

Tanggal 17/08/1945
Tanggal umum = Jumat Legi, 17 Agustus 1945
Tanggal jawa = Jumat Legi, 8 Poso 1876
Tanggal hijriah = Al-Jum’a, 8 Ramadhan 1364

nah ketahuankan kalo hari proklamasi itu jatuh pas 8 Ramadhan atau tepatnya pas bulan puasa…
atau bisa juga buat cari tahu kapan hari lahir kita dalam tanggalan arab atau jawa, cuma tinggal ganti sedikit atau tambahkan inputan buat masukin tanggal jadi dech……

Oya script ini ditemukan waktu browsing 3 minggu lalu tepatnya sebelum lebaran, kalo mo lebih jelasnya bisa cek di sini

http://www.tadulakohosting.com/php-script-tanggal-masehi-hijriah-jawa-1202.html?sid=60c817d5ac50e3b702408722af6d694a

kalo pun ga mau repot bisa download contoh scriptnya di Box sebelah kanan, yang berwarna hitam itu…namanya tgl_arab.rar / tgl_arab.zip

ditunggu Komennya….n kalo mo nyumbang silakan titip pesan aja di YM…
Karna dengan berbagi ilmu tak akan habis….

Terima kasih…

Iklan

12 thoughts on “Membuat fungsi Tanggal Hijriah-Masehi-Jawa dengan PHP

  1. menggunakannya cukup mengganti tanggal yang diinginkan saja…
    yang ada di baris :
    $date = hdate(17,8,1945);
    misalnya
    $date = hdate(07,07,1977);

    trus diSave n jalanin di Localhost, karna belum dibuatkan inputan jadi masih harus gonta-ganti skrip…

  2. error baris $m = $date[month] – 1; dan function intPart($floatNum) {…..}
    function hdate($day,$month,$year) {…..}. kenapa ya ? aku pake xampp versi 16.2 kale. tpoolong dong .

  3. ben gaizo berkata:

    Saya coba tahun 2010 bulan juni, hasilnya rada salah ya… seperti bulan ramadhan masuk tanggal 9 Agustus 2010 (menurut rumus) sedangkan menurut tanggalan 11 Agustus 2010?… any clue?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s