التقويم الهجري لسنة كاملة
مرسل: السبت 3 ربيع الثاني 1441هـ (30-11-2019م) 3:12 pm
السلام عليكم ورحمة الله وبركاته
أستاذي الفاضل
أحاول أن أعمل تقويما لسنة كاملة إلا أن المخرجات لا تظهر باشكل الصحيح ، أعلم أنه لا قصور في السكربت الخاص بكم وإنما في الطريقة التي تم تطبيقها
ما يتم عرضه في المتصفح:
بارك الله فيك .. كيف يمكن إخراج التقويم لمدة سنة بشكل صحيح
دمت في رعاية الله وحفظه
أستاذي الفاضل
أحاول أن أعمل تقويما لسنة كاملة إلا أن المخرجات لا تظهر باشكل الصحيح ، أعلم أنه لا قصور في السكربت الخاص بكم وإنما في الطريقة التي تم تطبيقها
كود: تحديد الكل
<?php
/*
* example for Hijri Date Lib
* by Saeed Hubaishan
*/
require_once 'hijri.class.php';
date_default_timezone_set('Asia/Aden');
function buildMonthCal($month, $year, $outmonth = FALSE)
{
$c = new hijri\Calendar();
$d = new hijri\datetime(null, null, 'ar', $c);
list($cday, $cmonth, $cyear) = explode('-', $d->format('_j-_n-_Y'));
$d->setDateHijri($year, $month + 1, 0);
list($gm2, $gy2) = explode('-', $d->format("M-Y"));
$d->setDateHijri($year, $month, 1);
list($start_wd, $month_name, $gm1, $gy1) = explode('-', $d->format("w-_M-M-Y"));
$title = $month_name . " " . $year . "هـ (" . $gm1 . (($gy2 != $gy1) ? " " . $gy1 : '') . (($gm2 != $gm1) ? "-" . $gm2 : '') . " " . $gy2 . "م)";
// $wd = array(0 => 1, 2, 3, 4, 5, 6, 0); // بداية الأسبوع يوم السبت
$wd = array(0 => 0, 1, 2, 3, 4, 5, 6);
$month_length = $c->days_in_month($month, $year);
$b_month = $month - 1;
$b_year = $year;
if ($b_month == 0) {
$b_month = 12;
$b_year--;
}
$a_month = $month + 1;
$a_year = $year;
if ($a_month == 13) {
$a_month = 1;
$a_year++;
}
echo '<div class="navigation"></div>';
if ($wd[$start_wd] > 0) {
$d->modify("-" . $wd[$start_wd] . " day");
}
echo '<table>
<tr>
<th class="weekday">الأحد</th>
<th class="weekday">الإثنين</th>
<th class="weekday">الثلاثاء</th>
<th class="weekday">الأربعاء</th>
<th class="weekday">الخميس</th>
<th class="weekday">الجمعة</th>
<th class="weekday">السبت</th>
</tr>';
$dayw = 0;
do {
list($hd, $hm, $hy, $gd, $gm, $gy) = explode('-', $d->format("_j-_n-_Y-j-n-Y"));
if ($dayw == 0) {
echo "<tr>";
}
$class = '';
if ($cday == $hd && $cmonth == $hm && $cyear == $hy) {
$class = "today";
} elseif ($hm == $month) {
$class = "current";
}
echo "<td class='$class'><a href='javascript: void(0)'>$hd<br/> <span class='gre'>$gd</span></a></td>";
if ($dayw == 6) {
echo "</tr>";
$dayw = 0;
if (($hm > $month) || ($hy > $year) || ($hm == $month && $hd == $month_length)) {
break;
}
} else {
$dayw++;
}
$d->modify("+1 day");
} while (TRUE);
}
$d = new hijri\datetime();
list($year, $month) = explode(' ', $d->format('_Y _n'));
// echo is_integer($_REQUEST['month'])).$_REQUEST['year'];
if (isset($_REQUEST['month']) && isset($_REQUEST['year'])) {
$tmonth = (int) $_REQUEST['month'];
$tyear = (int) $_REQUEST['year'];
if ($tmonth > 0 && $tmonth < 13) {
$year = $tyear;
$month = $tmonth;
}
}
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<title>التقويم الهجري الشهري</title>
<!-- add styles and scripts -->
<style>
/* calendar styles */
#calendar {
-moz-user-select: none;
border: 1px solid #EEEEEE;
border-radius: 6px 6px 6px 6px;
color: #333333;
font-family: Arial, sans-serif;
font-size: 1.1em;
margin: 10px auto;
padding: 0.4em;
width: 90%;
direction: rtl;
}
#calendar .navigation {
background-color: #CC0000;
border: 1px solid #E3A1A1;
border-radius: 6px 6px 6px 6px;
color: #FFFFFF;
font-weight: bold;
padding: 1px;
position: relative;
}
#calendar .navigation .title {
background: none repeat scroll 0 0 transparent;
border-color: rgba(0, 0, 0, 0);
color: inherit;
line-height: 1.8em;
margin: 0 2.3em;
text-align: center;
}
#calendar .navigation .prev, #calendar .navigation .next {
text-decoration: none;
color: #FFFFFF;
height: 24px;
opacity: 0.9;
position: absolute;
top: 4px;
width: 24px;
}
#calendar .navigation .prev {
background-position: 0 0;
right: 4px;
}
#calendar .navigation .next {
background-position: -24px 0;
left: 4px;
}
#calendar .navigation .prev:hover, #calendar .navigation .next:hover {
opacity: 1;
}
#calendar table {
border-collapse: collapse;
font-size: 0.9em;
table-layout: fixed;
width: 100%;
}
#calendar table th {
border: 0 none;
font-weight: bold;
padding: 0.7em 0.3em;
text-align: center;
}
#calendar table td {
border: 0 none;
padding: 1px;
}
#calendar table td a {
background-color: #EEEEEE;
border: 1px solid #D8DCDF;
color: #004276;
display: block;
font-weight: normal;
opacity: 0.7;
padding: 0.2em;
text-align: right;
text-decoration: none;
}
#calendar table td a:hover {
background-color: #F6F6F6;
border: 1px solid #CDD5DA;
color: #111111;
}
#calendar table td.current a {
font-weight: bold;
opacity: 1;
}
#calendar table td.today a {
background-color: #FBF8EE;
border: 1px solid #FCD3A1;
color: #444444;
font-weight: bold;
opacity: 1;
}
#calendar span.gre {
text-align: left;
direction: ltr;
color: #0080CC;
float: left;
}
</style>
</head>
<body>
<table id="calendar" border="0" width="95%" style="border-collapse: collapse">
<tr>
<td><?php buildMonthCal(1, 1441)?> </td><td>
<td><?php buildMonthCal(2, 1441)?> </td></td>
<td><?php buildMonthCal(3, 1441)?> </td></td>
</tr>
<tr>
<td><?php buildMonthCal(4, 1441)?> </td></td>
<td><?php buildMonthCal(5, 1441)?> </td></td>
<td><?php buildMonthCal(6, 1441)?> </td></td>
</tr>
<tr>
<td><?php buildMonthCal(7, 1441)?> </td></td>
<td><?php buildMonthCal(8, 1441)?> </td></td>
<td><?php buildMonthCal(9, 1441)?> </td></td>
</tr>
<tr>
<td><?php buildMonthCal(10, 1441)?> </td></td>
<td><?php buildMonthCal(11, 1441)?> </td></td>
<td><?php buildMonthCal(12, 1441)?> </td></td>
</tr>
</table>
</body>
</html>
ما يتم عرضه في المتصفح:
بارك الله فيك .. كيف يمكن إخراج التقويم لمدة سنة بشكل صحيح
دمت في رعاية الله وحفظه