{$txt}\n"; return $mybread; } function create_breadcrumb_li2($txt,$href,$pos) { $www = "https://".$_SERVER['SERVER_NAME']."/prayer-time/"; $mybread = "
  • {$txt}
  • \n"; return $mybread; } function get_criterion($conv) { $crit = array( "MABIMS (Brunei Darussalam, Indonesia, Malaysia, Singapore)", "University of Islamic Sciences, Karachi", "Muslim World League", "Egyptian General Authority of Survey", "Umm al-Qura, Makkah, Saudi Arabia", "Islamic Society of North America (ISNA), USA", "Custom", "JAKIM - Malaysia" ); return $crit[$conv-1]; } //curl to geoname function getTz($lat, $long) { $geonameurl = "https://www.al-habib.info/islamic-widget/remote_tz_v2.php?mpt_lat={$lat}&mpt_lng={$long}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$geonameurl); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); $server_output = curl_exec($ch); curl_close ($ch); $jsonout = json_decode($server_output); return $jsonout; } //open DB $db = new SQLite3('/home/alhabib2/db/prayer-time/here.db'); $db->busyTimeout(3000); // WAL mode has better control over concurrency. // Source: https://www.sqlite.org/wal.html $db->exec('PRAGMA journal_mode=WAL;'); //country codes $isocountry = array_flip(json_decode(file_get_contents("./iso3.json"),true)); //some default values $meta_hreflang = ""; $mystate = ""; $www = "https://".$_SERVER['SERVER_NAME']."/prayer-time/"; $myq = "Suwatu, Tanon"; $mydate = new DateTime(); $curyear = intval($mydate->format('Y')); $nextyear = intval(date("Y", strtotime("+1 year"))); $mylabelurl = urlencode($myq); //Locale::setDefault('id-ID'); //locale_set_default('id_ID.utf8'); $monthnames = array("January","February","March","April","May","June","July","August","September","October","November","December"); $mypage = ""; //get request queries $display = isset($_REQUEST['disp'])?$_REQUEST['disp']:""; $display = SQLite3::escapeString($display); $hereid = isset($_REQUEST['hid'])?$_REQUEST['hid']:""; $hereid = SQLite3::escapeString($hereid); $qcountry = isset($_REQUEST['country'])?$_REQUEST['country']:""; $qcountry = SQLite3::escapeString($qcountry); $qmonth = isset($_REQUEST['month'])?$_REQUEST['month']:""; /* if($qmonth) { $qmonth = (!is_int(intval($qmonth)) || $qmonth < 1 || $qmonth > 12)?date("n"): intval($qmonth); } */ $qmonth = SQLite3::escapeString($qmonth); $qyear = isset($_REQUEST['year'])?$_REQUEST['year']:""; /* if($qyear) { $qyear = (!is_int(intval($qyear)) || $qyear < 1 || $qyear > 3000 )?date("Y"): intval($qyear); } */ $qyear = SQLite3::escapeString($qyear); //var_dump($qyear); $label = "Prayer Timetables - Namaz Times"; $elev = ""; if($display=="pop") { $label = "Popular Prayer Timetables - Namaz Times (PDF, Excel versions)"; $meta_hreflang = ""; } //if($qcountry && !$hid) $label .= " $qcountry"; //if hereid is set if($hereid) { $sql = $db->prepare('SELECT * from places2 WHERE hereid = ?;'); //$sql->bindValue(':hereid', $hereid, SQLITE3_TEXT); $sql->bindParam(1, $hereid); $res = $sql->execute(); //var_dump($res->fetchArray()); $row = $res->fetchArray(); //$rownum = sqlite_num_rows($res); //var_dump($row); if($row) { //update elevation if(! $row['elevation']) { $json2 = getTz($row['lat'], $row['long']); $elev = $json2->elevation; $db->exec("UPDATE places2 SET elevation = {$elev} WHERE hereid = '{$hereid}'"); } else { $elev = $row['elevation']; } $iso2 = $isocountry["{$row['countryid']}"]; $mylabel = $row['subdistrict']?$row['subdistrict'] .", ".$row['district']:($row['district']?$row['district'].", ".$row['city']:$row['city']); $mylabel .= $row['state']?", ".$row['state'] .", ".$row['country']:", ".$row['county'].", ".$row['country']; $mylabelurl = urlencode($mylabel); //$label .= " {$row['label']}"; // $label .= " {$mylabel}"; $myloc = ($row['subdistrict'])?$row['subdistrict']:($row['district']?$row['district']:$row['city']); $mystate = $row['state']?$row['state']:$row['county']; $mypage = "daily"; } //if row else { if(isset($_SERVER['HTTP_REFERER'])) { $referer = $_SERVER['HTTP_REFERER']; } if(isset($_SERVER['REQUEST_URI'])) { $requri = $_SERVER['REQUEST_URI']; } // Use the header() function to send the 301 redirect status and Location header //error_log("(prayer-time) ID not found, redirected from {$hereid} referer {$referer} uri {$requri}"); header("HTTP/1.1 301 Moved Permanently"); header("Location: {$www}"); exit; } if($qyear) { $label = "Yearly Prayer Timetable:"; if($row['country']=="India" || $row['country']=="Pakistan" || $row['country']=="Bangladesh" || $row['country']=="Afghanistan") { $label = str_replace("Prayer","Namaz", $label); } $mylabel2 = "{$qyear}"; $mypage = "yearly"; //if bulanan if($qmonth) { $label = "Monthly Prayer Timetable:"; $mylabel2 = "{$monthnames[$qmonth-1]} {$qyear}"; //$label .= " - {$mylabel}"; $mypage = "monthly"; if($row['country']=="India" || $row['country']=="Pakistan" || $row['country']=="Bangladesh" || $row['country']=="Afghanistan") { $label = str_replace("Prayer","Namaz", $label); } } // $mylabel .= " - {$mylabel2}"; } //if qyear else { $qmonth = ""; $mypage = "daily"; } //$label .= " {$mylabel}"; $label = "{$mylabel2} {$label} {$mylabel}"; } else { //if hereid if($qcountry) { $label .= " for $qcountry"; $mypage = ""; $sql = $db->prepare('SELECT * FROM places2 WHERE country = ? ORDER BY hits DESC LIMIT 20;'); $sql->bindParam(1, $qcountry); $res = $sql->execute(); if(!$res->fetchArray()) { header("HTTP/1.1 301 Moved Permanently"); header("Location: {$www}"); exit; } } } //if not hereid //update hits //if not bots if(! is_bot2()) { $hits = $db->query("SELECT hits from places2 WHERE hereid = '{$hereid}'"); while ($row2 = $hits->fetchArray()) { $hits2 = ($row2['hits'] + 1); $db->exec("UPDATE places2 SET hits = {$hits2}, lasthit = julianday('now') WHERE hereid = '{$hereid}'"); } } //if not bots $targetUrl = false; //error_log("pagetype = {$mypage} {$www}di/".urlencode($row['country'])."/".urlencode($myloc.", ".$mystate)."/".urlencode($row['hereid'])."/{$qyear}/{$qmonth}/"); if($mypage == "monthly" && ($qyear < $curyear || $qyear > $nextyear)) { $targetUrl = "{$www}for/".urlencode($row['country'])."/".urlencode($myloc.", ".$mystate)."/".urlencode($row['hereid'])."/{$curyear}/{$qmonth}/"; //error_log("targetUrl for monthly page is set: /{$curyear}/{$qmonth}/"); } else if($mypage == "yearly" && ($qyear < $curyear || $qyear > $nextyear)) { $targetUrl = "{$www}for/".urlencode($row['country'])."/".urlencode($myloc.", ".$mystate)."/".urlencode($row['hereid'])."/{$curyear}/"; //error_log("targetUrl for yearly page is set: /{$curyear}/"); } if($targetUrl) { // Use the header() function to send the 301 redirect status and Location header //error_log("{$targetUrl} found, redirected from /{$qyear}/{$qmonth}/"); header("HTTP/1.1 301 Moved Permanently"); header("Location: $targetUrl"); // Exit to prevent further execution of the script exit; } ?> <?php echo str_replace("Timetable","Times", str_replace("Timetables","Times", $label)); ?> - Alhabib
     

    Create and download prayer timetables for various cities in $qcountry":"the world"; echo $dimana ?>! Start by entering your city's name in the form above. If not found, or too many results, combine the city with state or county name or higher administrative order .

    Popular Prayer Timetables (PDF, Excel Versions)

    Below are several, most popular prayer timetables that have been generated in this website.

    prepare('SELECT * FROM places2 ORDER BY hits DESC LIMIT 40;'); $res = $sql->execute(); $rows = array(); while ($row = $res->fetchArray()) { if($row['city']) { $myloc = ($row['subdistrict'])?$row['subdistrict']:($row['district']?$row['district']:$row['city']); $mystate = $row['state']?$row['state']:$row['county']; // $loghi = intval(log($row['hits'])*10)+1; $loghi = $row['hits']; $href = "{$www}for/".urlencode($row['country'])."/".urlencode($myloc.", ".$mystate)."/".urlencode($row['hereid'])."/"; array_push($clouds,"{text: '{$row['city']}', weight: {$loghi}, link: '{$href}'}"); } } } else { //Get list of countries $sql = $db->prepare('SELECT country, count(*) as hits FROM places2 group by country;'); //$sql = $db->prepare('SELECT country, hits FROM places2;'); //$sql = $db->prepare('SELECT DISTINCT country FROM places2;'); //$sql = $db->prepare('SELECT DISTINCT country FROM places2 ORDER BY country;'); $res = $sql->execute(); $rows = array(); while ($row = $res->fetchArray()) { if($row['country']) { if(!isset($rows[$row['country']])) { $rows[$row['country']] = $row['hits']; } else { $rows[$row['country']] += $row['hits']; } } } if($rows) { arsort($rows); $rows2 = array(); foreach ($rows as $co => $hi) { $hi = count_format($hi); array_push($rows2,"{$co} ({$hi})"); } echo "

    Muslim Prayer Times for Various Countries

    \n"; echo "
    "; ?>

    Examples of prayer times for various cities can be found from the following links (sorted by popularity or number of places searched). They are available as daily prayer times, monthly prayer timetables, or yearly muslim prayer timetables. In addition, there will be options to download the prayer timetables as PDF, texts or Excel (.csv or .xlsx) formats.

    \n"; echo implode(" | ", $rows2); echo "

    \n
    \n"; } //var_dump($rows); ?>

    Popular Prayer Timetables

    Ramadan Prayer Timetables (Namaz Times)

    When is Ramadan ?. Find out information about the incoming holy month of Ramadan and create your own Ramadan prayer timetables using our online Ramadan Timetable Generator. You can then, save or download the timetables as PDF or Excel formats.

    Yearly Prayer Timetable Generator

    The following is our old website for the generation of yearly prayer timetables. The service will produce PDF and Excel files for convenient printing or editing. Please visit the "Yearly Prayer Timetable Generator".

    Prayer Timetable Widget

    We have set up a service for you to display daily prayer times as a widget for your website.

    prepare('SELECT * FROM places2 WHERE country = ? ORDER BY hits DESC LIMIT 20;'); $sql->bindParam(1, $qcountry); $res = $sql->execute(); */ $rows = array(); if($qcountry=="India" || $qcountry=="Pakistan" || $qcountry=="Bangladesh" || $qcountry=="Afghanistan") { echo "

    Popular namaz timetables in $qcountry

    \n"; } else { echo "

    Popular prayer timetables in $qcountry

    \n"; } echo "

    \n"; while ($row = $res->fetchArray()) { if($row['city']) { $myloc = ($row['subdistrict'])?$row['subdistrict']:($row['district']?$row['district']:$row['city']); $mystate = $row['state']?$row['state']:$row['county']; $linktext = ""; if($row['subdistrict']) { $linktext .= "{$row['subdistrict']}, {$row['district']}"; } elseif($row['district']) { $linktext .= "{$row['district']}, {$row['city']}"; } else { $linktext .= "{$row['city']}"; } $linktext .= ", {$mystate}, {$row['country']}"; //$linktext .= " ({$row['hits']})"; $formatHits = count_format($row['hits']); // array_push($rows,"{$linktext}"); array_push($rows,"{$linktext} ({$formatHits} views)"); } } echo implode(" | ", $rows); echo "\n

    \n"; //Get list of popular cities $sql = $db->prepare('SELECT * FROM places2 WHERE country = ? ORDER BY lasthit DESC LIMIT 20;'); $sql->bindParam(1, $qcountry); $res = $sql->execute(); $rows = array(); echo "

    Latest prayer timetables in $qcountry

    \n"; echo "

    \n"; while ($row = $res->fetchArray()) { if($row['city']) { $myloc = ($row['subdistrict'])?$row['subdistrict']:($row['district']?$row['district']:$row['city']); $mystate = $row['state']?$row['state']:$row['county']; $linktext = ""; if($row['subdistrict']) { $linktext .= "{$row['subdistrict']}, {$row['district']}"; } elseif($row['district']) { $linktext .= "{$row['district']}, {$row['city']}"; } else { $linktext .= "{$row['city']}"; } $linktext .= ", {$mystate}, {$row['country']}"; // array_push($rows,"{$linktext}"); array_push($rows,"{$linktext}"); } } echo implode(" | ", $rows); echo "\n

    \n"; } //if qcountry defined ?> setTimezone(new DateTimeZone($row['tz'])); } //set prayer time calculation $fmt = new IntlDateFormatter( 'en-EN', IntlDateFormatter::FULL, IntlDateFormatter::NONE, $row['tz'], IntlDateFormatter::GREGORIAN ); $fmtHari = new IntlDateFormatter( 'en-EN', IntlDateFormatter::NONE, IntlDateFormatter::NONE, $row['tz'], IntlDateFormatter::GREGORIAN, 'EEEE' ); $fmtAngka = new IntlDateFormatter( 'en-EN', IntlDateFormatter::NONE, IntlDateFormatter::NONE, $row['tz'], IntlDateFormatter::GREGORIAN, 'dd-MM-yyyy' ); require($_SERVER['DOCUMENT_ROOT'] .'/jadwal-shalat/salat-conventions.php'); $conv = country2convention($iso2); //var_dump($conv); $crit = get_criterion($conv['mpt_conv']); //date_default_timezone_set('UTC'); require($_SERVER['DOCUMENT_ROOT'] .'/utils/arphp3/Arabic.php'); $ArSalat = new I18N_Arabic('Salat'); $the_fiqh = $conv['mpt_asr']; $the_lat = $row['lat']; $the_long = $row['long']; $the_tz = $mydate->format('Z')/3600; //from seconds to hours $the_elev = 0; //temporary set as zero $the_month = $mydate->format('m'); $the_date = $mydate->format('d'); $the_year = $mydate->format('Y'); // Salat calculation configuration: Sunni $ArSalat->setConf($the_fiqh, -0.833333, $conv['mpt_ishaz'], $conv['mpt_fajrz'], 'Sunni'); // Latitude, Longitude, Zone, and Elevation $ArSalat->setLocation($the_lat, $the_long, $the_tz, $the_elev); //calculate today's shalat times $ArSalat->setDate($the_month, $the_date, $the_year); $times = $ArSalat->getPrayTime2(); $kiblat = round($ArSalat->getQibla()); $peta = "https://".$_SERVER['SERVER_NAME']."/prayer-time/images/map-{$hereid}.jpg"; //if hereid defined, output location info echo "
    "; echo "\"Map"; echo "
    \n"; if(is_integer($elev) ) { $elevinfo = "| Elevation: {$elev} m. "; } else { $elevinfo = ""; } echo "

    Place: {$myloc}, {$row['country']}. | Position: (".round($row['lat'], 3).", ".round($row['long'], 3)."). {$elevinfo}| Time zone: {$mydate->format('T')} (UTC {$mydate->format('P')}). | Qibla direction: ".$kiblat."° from North.

    \n"; //daily info //if(!$qyear || !$qmonth) { if(!($qyear || $qmonth)) { ?>

    Prayer Times in Today - format($mydate); ?>

    setDate($the_month, $the_date, $the_year); //$times = $ArSalat->getPrayTime2(); //echo "

    "; //var_dump($times); $mytglangka = $fmtAngka->format($mydate); $mytglfull = str_replace("Sunday","Ahad",$fmt->format($mydate)); $myhari = str_replace("Sunday","Ahad",$fmtHari->format($mydate)); $mytgl = trim(explode(",",str_replace("Sunday","Ahad",$fmt->format($mydate)))[1]); //$mytglonly = trim(explode(" ",$mytgl)[0]); $mytglonly = trim(explode(" ",$mytgl)[0])." ".substr(trim(explode(" ",$mytgl)[1]),0,3); ?>

    Today's Prayer Times: -

    Date
    Imsak Today
    Fajr Today
    Shuruq Today
    Dhuha Today
    Dhuhr Today
    'Asr Today
    Maghrib Today
    Isha' Today

    Times were calculated based on criterion.

    ".str_replace(array("(",")"),"",$times[13]).", the shadow of an upright object points to qibla direction."; } else { $jamkiblat = "At {$times[13]}, the sun is on the direction of qibla."; } ?>

    Qibla Hour

    Qibla direction for {$myloc}, {$row['country']} is ". round($ArSalat->getQibla())."°"; echo " from geographical North (clock-wise). $jamkiblat

    \n"; ?>

    Monthly Prayer Timetable for

    Yearly Prayer Timetable for

    1) { //$reveal = "reveal "; } $htmlOut2 .= ""; for ($i=1; $i<=$monthdays; $i++) { if($i%5 == 1) { //modulus $rowstyle = "{$reveal}"; if($i%2) { $rowstyle .= "genap "; } else { $rowstyle .= "ganjil "; } //error_log($jsonArray[$j][$i][2]); if($jsonArray[$j][$i][2] == "Jumat") { $rowstyle .= "jumat "; } $htmlOut2 .= ""; // $htmlOut2 .= ""; //$htmlOut2 .= ""; $htmlOut2 .= ""; for ($k=2; $k<12; $k++) { if($k!=3) { //$htmlOut2 .= ""; $htmlOut2 .= ""; } } $htmlOut2 .= "\n"; } //modulus } //i } //j echo $htmlOut2; } //if json exists //} else { //caculate yearly table for ($j=1; $j<13; $j++) { $arayOut[$j] = array(); $the_month = $j; $monthdays=date('t', mktime(0, 0, 0, $the_month, 1, $the_year)); if ($j>1) { $reveal = "reveal "; } $htmlOut .= ""; for ($i=1; $i<=$monthdays; $i++) { //if($i%5 == 1) { $rowstyle = "{$reveal}"; if($i%2) { $rowstyle .= "genap "; } else { $rowstyle .= "ganjil "; } $ArSalat->setDate($the_month, $i, $the_year); // $curDate = date(mktime(0, 0, 0, $the_month, $i, $the_year)); $curDate = new DateTime(); //$curDate->setTimestamp(mktime(0, 0, 0, $the_month, $i, $the_year)); //set to timezone to handle dst if($row['tz']) { $curDate->setTimezone(new DateTimeZone($row['tz'])); } $curDate->setDate($the_year, $the_month, $i); $the_tz = $curDate->format('Z')/3600; //from seconds to hours $ArSalat->setLocation($the_lat, $the_long, $the_tz, $the_elev); $curDay = str_replace("Minggu","Ahad",$fmtHari->format($curDate)); //$mytglangka = $fmtAngka->format($curDate); $mytglangka = $curDate->format("d-m-Y"); $times = $ArSalat->getPrayTime2(); if($curDay == "Friday") { $rowstyle .= "jumat "; } if($i%5 == 1) { $htmlOut .= ""; // $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; // $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= "\n"; } //modulus 5 $arrayOut[$j][$i] = array(($i<10)?("0".$i):($i),$mytglangka,$curDay,$times[8],$times[0],$times[1],$times[9],$times[2],$times[3],$times[4],$times[5],$times[13]); }//i }//j }//cache exists echo $htmlOut; //cache yearly table for the current year and next year if ((intval($the_year) - intval(date("Y"))) == 0 || (intval($the_year) - intval(date("Y"))) == 1) { if ($htmlOut != "") { //file_put_contents("{$cachedir}/{$cacheName}", $htmlOut); } if ($htmlOut2 != "") { //file_put_contents("{$cachedir}/{$cacheName}-json", $htmlOut2); } if ($arrayOut !== false && !empty($arrayOut)) { if (file_put_contents("{$cachedir}/{$cacheJson}", json_encode($arrayOut)) !== false) { //error_log("Success"); } else { error_log("Error: Unable to open the file {$cacheJson} for writing."); } } else { //error_log("Error: JSON encoding failed."); } } ?>

    DateDayFajrShuruqDhuha Dhuhr'AsrMaghribIsha'Qibla Hour
    {$monthnames[$the_month-1]} {$the_year}
    {$jsonArray[$j][$i][0]}{$jsonArray[$j][$i][1]}{$jsonArray[$j][$i][1]}{$jsonArray[$j][$i][$k]}{$jsonArray[$j][$i][$k]}
    {$monthnames[$the_month-1]} {$the_year}
    ".(($i<10)?("0".$i):($i))."".$mytglangka."{$curDay}{$times[8]}{$times[0]}{$times[1]}{$times[9]}{$times[2]}{$times[3]}{$times[4]}{$times[5]}{$times[13]}

    Prayer times were calculated based on criterion.
    Qibla Hour is the time when the sun is at the direction of Qibla (Makkah) or opposite of it (times in bracket).
    Prepared by: Alhabib - Coloring with Islam - www.al-habib.info

    Other Yearly Prayer Timetables

    Yearly prayer times for the next year: {$nextyear}.\n"; ?>

    "; // $htmlOut2 .= ""; //$htmlOut2 .= ""; $htmlOut2 .= ""; for ($k=2; $k<12; $k++) { if($k!=3) { //$htmlOut2 .= ""; $htmlOut2 .= ""; } } $htmlOut2 .= "\n"; } //i echo $htmlOut2; //error_log("(prayer-time) monthly json used - {$label}"); } //json exists else { for ($i=1; $i<=$monthdays; $i++) { $rowstyle = ""; if($i%2) { $rowstyle .= "genap "; } else { $rowstyle .= "ganjil "; } $ArSalat->setDate($the_month, $i, $the_year); //$curDate = date(mktime(0, 0, 0, $the_month, $i, $the_year)); $curDate = new DateTime(); //$curDate->setTimestamp(mktime(0, 0, 0, $the_month, $i, $the_year)); //set to timezone to handle dst if($row['tz']) { $curDate->setTimezone(new DateTimeZone($row['tz'])); } $curDate->setDate($the_year, $the_month, $i); $the_tz = $curDate->format('Z')/3600; //from seconds to hours $ArSalat->setLocation($the_lat, $the_long, $the_tz, $the_elev); $curDay = str_replace("Minggu","Ahad",$fmtHari->format($curDate)); $mytgl = trim(explode(",",str_replace("Minggu","Ahad",$fmt->format($curDate)))[1]); $mytglonly = trim(explode(" ",$mytgl)[0])." ".substr(trim(explode(" ",$mytgl)[1]),0,3); //$mytglangka = $fmtAngka->format($curDate); $mytglangka = $curDate->format("d-m-Y"); $times = $ArSalat->getPrayTime2(); if($curDay == "Friday") { $rowstyle .= "jumat "; } $htmlOut .= ""; $htmlOut .= ""; //$htmlOut .= ""; $htmlOut .= ""; //$htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= ""; $htmlOut .= "\n"; } echo $htmlOut; //error_log("(prayer-time) monthly arphp used - {$label}"); }//json not exists ?>

    DateDayFajrShuruqDhuha Dhuhr'AsrMaghribIsha'Qibla Hour
    {$jsonArray[$j][$i][0]}{$jsonArray[$j][$i][1]}{$jsonArray[$j][$i][1]}{$jsonArray[$j][$i][$k]}{$jsonArray[$j][$i][$k]}
    ".$mytglangka."".(($i<10)?("0".$i):($i))."{$curDay}{$times[8]}{$times[0]}{$times[1]}{$times[9]}{$times[2]}{$times[3]}{$times[4]}{$times[5]}{$times[13]}

    Prayer times were calculated based on criterion.
    Qibla Hour is the time when the sun is at the direction of Qibla (Makkah) or opposite of it (times in bracket).
    Prepared by: Alhabib - Coloring with Islam - www.al-habib.info

    Other Monthly Prayer Timetables for - Year

    {$monthnames[$i-1]} {$the_year}"; array_push($monthlylinks, $monthlylink); } echo implode(" | ", $monthlylinks); ?>