Fahrudin's Blog

My statusHubungi

Just learn, try and share to all.

May 22 2008

Konversi Tanggal Ke Hijriah Di PHP

Kategori : ICT,Web Script
Di Posting Oleh : Fachrudin | Pada Jam : 8 : 57 am

Mungkin ada yang membutuhkan solusi untuk merubah Tanggal (Date) ke format kalender Hijriah berikut salah satu cara yang sudah saya gunakan dan Alhamdulillah berhasil. Adapun kegunannya adalah untuk merubah tanggal di Blog / Website agar menggunakan format Hijriah seperti :

  • Tanggal Hari Ini
  • Tanggal Posting
  • Dan Lain Sebagainya

Ini hasil yang akan muncul ketika di eksekusi menggunakan web browser.

Ketik script dibawah ini di notepad ataupun editor PHP yang lain. Simpan dengan nama date.php di webserver directory (Apache, IIS dll). Semoga bermanfaat …

<title>Konversi Tanggal</title>
<?
$day=date(“l”);
//$date=date(“Y-m-d H:i:s”);
$date=”1984-09-02 20:02:29″;
$year=substr($date,0,4);
$month=substr($date,5,2);
$tgl=substr($date,8,2);
$hour=substr($date,11,2);
$minute=substr($date,14,2);
$second=substr($date,17,2);;

echo “<hr>”;
echo “<b>Default Date/Time</b><br>”;
echo “Hari Default : “.$day.”<br>”;
echo “Tanggal Default : “.$date.”<br>”;
echo “Dimana : <br>”;
echo $year.” => Tahun<br>”;
echo $month.” => Bulan<br>”;
echo $tgl.” => Tanggal<br>”;
echo $hour.” => Jam<br>”;
echo $minute.” => Menit<br>”;
echo $second.” => Detik<br>”;

echo “<hr>”;
echo “<b>Konversi Indonesia</b><br>”;
konvhari($day);
konvnasional($date);

echo “<hr>”;
echo “<b>Konversi Hijriah</b><br>”;
konvhari($day);
$datehijriah=konvhijriah($date);
echo “Tanggal Hijriah : “.$datehijriah;
echo ” “.substr($date,11,2).”:”.substr($date,14,2).”:”.substr($date,17,2);

function konvhari($hari)
{
//Konversi Hari
switch($hari)
{
case “Monday”:
$harinya=”Senin”;
break;
case “Tuesday”;
$harinya=”Selasa”;
break;
case “Wednesday”:
$harinya=”Rabu”;
break;
case “Thursday”:
$harinya=”Kamis”;
break;
case “Friday”:
$harinya=”Jum’at”;
break;
case “Saturday”:
$harinya=”Sabtu”;
break;
default:
$harinya=”Minggu”;
break;
}
echo “Hari Sekarang : “.$harinya.”<br>”;
}

function konvnasional($tanggal)
{

$array_bulan=array(“Januari”,”Februari”,”Maret”,
“April”,”Mei”,”Juni”,
“Juli”,”Agustus”,”September”,
“Oktober”,”Nopember”,”Desember”);

$tanggalnya=substr($tanggal,8,2);
$bulannya=$array_bulan[ceil(substr($tanggal,5,2))-1];
$tahunnya=substr($tanggal,0,4);
$jamnya=substr($tanggal,11,2);
$menitnya=substr($tanggal,14,2);
$detiknya=substr($tanggal,17,2);
$tglsekarang=$tanggalnya.” “.$bulannya.” “.$tahunnya.” “.$jamnya.”:”.$menitnya.”:”.$detiknya;

echo “Tanggal Sekarang : “.$tglsekarang;

}

function makeInt($angka)
{
if ($angka < -0.0000001)
{
return ceil($angka-0.0000001);
}
else
{
return floor($angka+0.0000001);
}
}

function konvhijriah($tanggal)
{

switch($hari)
{
case “Monday”:
$harinya=”Senin”;
break;
case “Tuesday”;
$harinya=”Selasa”;
break;
case “Wednesday”:
$harinya=”Rabu”;
break;
case “Thursday”:
$harinya=”Kamis”;
break;
case “Friday”:
$harinya=”Jum’at”;
break;
case “Saturday”:
$harinya=”Sabtu”;
break;
default:
$harinya=”Minggu”;
break;
}
$array_bulan = array(“Muharram”, “Safar”, “Rabiul Awwal”, “Rabiul Akhir”,
“Jumadil Awwal”,”Jumadil Akhir”, “Rajab”, “Sya’ban”,
“Ramadhan”,”Syawwal”, “Zulqaidah”, “Zulhijjah”);

$date = makeInt(substr($tanggal,8,2));
$month = makeInt(substr($tanggal,5,2));
$year = makeInt(substr($tanggal,0,4));

if (($year>1582)||(($year == “1582″) && ($month > 10))||(($year == “1582″) && ($month==”10″)&&($date >14)))
{
$jd = makeInt((1461*($year+4800+makeInt(($month-14)/12)))/4)+
makeInt((367*($month-2-12*(makeInt(($month-14)/12))))/12)-
makeInt( (3*(makeInt(($year+4900+makeInt(($month-14)/12))/100))) /4)+
$date-32075;
}
else
{
$jd = 367*$year-makeInt((7*($year+5001+makeInt(($month-9)/7)))/4)+
makeInt((275*$month)/9)+$date+1729777;
}

$wd = $jd%7;
$l = $jd-1948440+10632;
$n=makeInt(($l-1)/10631);
$l=$l-10631*$n+354;
$z=(makeInt((10985-$l)/5316))*(makeInt((50*$l)/17719))+(makeInt($l/5670))*(makeInt((43*$l)/15238));
$l=$l-(makeInt((30-$z)/15))*(makeInt((17719*$z)/50))-(makeInt($z/16))*(makeInt((15238*$z)/43))+29;
$m=makeInt((24*$l)/709);
$d=$l-makeInt((709*$m)/24);
$y=30*$n+$z-30;

$g = $m-1;
$final = “$d $array_bulan[$g] $y H”;

return $final;
}
?>

Sumber :
Fungsi mendapatkan tanggal hijriyah
Author : M. Salman Farisi
Email : salman@almanhaj.or.id
Dan dan dioprek dikit By Ane

25 Komentar

25 Comments so far

  1. aril May 22nd, 2008 09:39

    Wah [mata berbinar-binar]… Dapet ilmu baru, coba ah… Thankz Oms.

  2. Fachrudin May 22nd, 2008 10:07

    :D sharing knowledge aja om

  3. KieN May 24th, 2008 08:32

    Ini bahasa apaan om ?#$%#%@#! ..hehe :D

  4. Fachrudin May 24th, 2008 10:42

    Ah bung Ikien ini … Jangan suka merendah ntar jatoh.

  5. hardyboyz May 27th, 2008 19:04

    Siiip bos…
    mantab nih..kita kan islam, masa masih pake tanggal masehi aja. :D

  6. anto June 28th, 2008 09:21

    tanggalnya mundur sehari coba cocokkan dengan kalender islam atau pada http://www.eramuslim.com

  7. amoy August 26th, 2008 14:44

    kenapa tgl 26 Agustus 2008 mjd 26 Sya’ban 1429 H? jadi Bulan Sya’bannya menjadi 28 hari sedangkan 1 Ramadhan 1429 H jatuh pada tanggal 1 September 2008 M. biasanya satu bulan itu 29 atau 30 hari.

  8. reekoheek September 14th, 2008 01:20

    nah lo… bener jadi mundur sehari tuh…

  9. zacky October 16th, 2008 09:04

    mas…,,,,aq tlg krimin script tgl yg ad di blog sampeyan dunk…,,,,plizz…,,,,thanks ya mas…,,,,krim di emailq zacky_ZV@yahoo.co.id ag cpt y mas…,,,,^_^

    wassalamu’alaikum wr wb

    thanks be 4^_^

  10. dede darmanto June 22nd, 2009 08:27

    assalamualaikum,
    Mas tanggal lahir saya 28 maret 1982 saya mau konversi ke tahun hijriyah alias ingin tahu tanggal kelahiran saya di tahun hijriyah, kira2 mas bisa ga ngasih tau?? tolong ya di bales ke email saya.

  11. marwa August 19th, 2009 19:14

    mo minta tolong. saya lahir 6 maret 1984, tolong konversikan ke tahun hijriah ya! trima kasih sebelumnya. tolong balas di email saya.

  12. Arif Rahmat October 15th, 2009 06:09

    6 Maret 1984 = 3 Jumadil Akhir 1404 ( http://www.wolframalpha.com/input/?i=6+maret+1984 )
    28 Maret 1982 = 2 Jumadil Akhir 1402 ( http://www.wolframalpha.com/input/?i=28+maret+1982 )

  13. yatmo November 18th, 2009 23:15

    tanggal 2 des 1987 bertepatan tgl brapa?

  14. ali December 3rd, 2009 12:41

    ana pengen tau tanggal 25 0ktober 1984 bulan hijriah nya apa sih

  15. ali December 3rd, 2009 12:44

    ana lahir tanggal 25 0ktober 1984 tolong konversikan ke tahun hijriahnya ya syukron

  16. daori December 13th, 2009 00:57

    thakyu bos informasinya sungguh sangat membatu saya dalam pengenjaan website

  17. Ulfa December 28th, 2009 13:52

    Tanggal lahir ana tanggal 23 Agustus 1995….

    tolong konversikan ke tahun hijriyah za…

    blez x di alamat e-mail za…

  18. link bat January 20th, 2010 18:42

    teng q bgt bang script nya,,,
    qte jd tau nih tgl lahir islam qte…

    ^^
    wassalam,
    sukses selalu,,

  19. mamat February 9th, 2010 22:18

    mas ajari aku buat javascript donk,gimana cara buat dan nampilin hari dalam jawa contohnya sak iki;rebo pon,25-11-2011
    thanks maz..

  20. toni February 10th, 2010 09:44

    sy lahir 22 desember 1984
    tolong konversikan ke tahun hijriyah….

    wassalam..

  21. adhien March 29th, 2010 19:58

    menurut bundaku,,sya lahir tgl 6 dzulhijjah 1402 h. tlong dong di konversi ke thn masehi.pleaseee.tlong krim ke almat emailku…

  22. asep May 2nd, 2010 01:48

    alhmdllh, terime kasih..

  23. balgis November 21st, 2010 23:06

    tanggal 03 oktoober 1997
    tanggal 03 agustus 1964
    tanggal 04 juni 1996
    tanggal 29 april 1975
    tanggal 22 september 2004

    tolong kirim lewat email

  24. dian November 29th, 2010 10:35

    mas, klo konversinya pke inputan gmna yah skripnya..
    misalkan..kita input 09…jadinya di field bulan jadi September..

  25. Sakahayang Dot Com May 20th, 2012 19:09

    hihihii kok pada minta dikirim ke email ya,,,,
    mestinya disini ada demonya langsung biar pembaca bisa convert sendiri

Silahkan Isi Komentar