بسم الله الرحمن الرحيم

مكتبة التقويم الهجري
Hijri Date 2.3.2

الحمد لله والصلاة والسلام على رسول الله وعلى آله وصحبه ومن والاه.
.وأشهد أن لا إله إلا الله وأشهد أن محمدُا عبده ورسوله.
أما بعد :
فهذه دوال التقويم الهجري، تم كتابته بعناية تامة وقد راعيت فيها السهولة والسرعة، وهذا الملف في شرح للدوال وكيفية عملها. فعسى الله أن يكتب فيها الأجر والمثوبة

التعريف بالتقويم الهجري

التقويم الهجري(وتسميه بعض المصادر الأجنبية بالتقويم الإسلامي) هو تقويم قمري يعتمد على اختلاف منازل القمر بمرور الزمن، والشهر فيه يبتدئ من ظهور الهلال إلى ظهور الهلال التالي.
وقد كان معروفا عند العرب قبل الإسلام، وعدة الشهور فيه اثنا عشر شهرا، قال الله تعالى:{إن عدة الشهور عند الله اثنا شهرا في كتاب الله يوم خلق السموات والأرض}. ولم يكن العرب يعدون السنين بل كانوا يسمون كل سنة بأبرز ما جاء فيها من أحداث.
لما جاء الإسلام أقر التقويم على ما هو عليه من تسمية الشهور وترتيبها وألغى النسيء، واستمر الحال على ما هو عليه من عدم عد السنين في زمن الرسول _صلى الله عليه وعلى آله وسلم- وخلافة أبي بكر الصديق رضي الله عنه وصدرا من خلافة عمر بن الخطاب.
ثم رأى الخليفة عمر بن الخطاب -رضي الله عنه- أهمية عد السنين من أجل إزالة الإشكال في التأريخ، فجعل عد السنين من السنة التي هاجر فيها رسول الله -صلى الله عليه وعلى آله وسلم- من مكة إلى المدينة؛ لما كان لهذا الحدث العظيم من أثر جليل على البشرية، وجعل ابتدأ السنة على ما كان معروفا عند العرب من شهر محرم، ولهذا سمي هذا التقويم بالتقويم الهجرية.

طرق حساب التقويم الهجري

يقوم التقويم الهجري أساسًا على الرؤية البصرية للهلال، ولم يكن العرب يعتمدون على الحساب في معرفة التقويم ثم لما تطور الحساب واحتاج الناس أن يعرفوا المقابلة بين التقاويم ومعرفة أيام الأسبوع لتواريخ ماضية قام علماء الهيئة والحساب بوضع مسائل حسابية يعتمد عليها في معرفة التأريخ السابق و اللاحق من التقويم الهجري، وقد سميت هذه القواعد بالتقويم الهجري الاصطلاحي.

التقويم الهجري الاصطلاحي

يقوم التقويم الهجري الاصطلاحي على تعيين طول الشهور الوترية (التي لا تقبل القسمة 2 بدون باقٍ) بـ30 يوما والشهور الشفعية (التي تقبل القسمة على 2 بدون باقٍ) بـ29 يوما فيكون أطول الشهور على الترتيب كالآتي:
30 29 30 29 30 29 30 29 30 29 30 29
يكون طول السنة 354 يوما وتسمى بالسنة البسيطة، ولما كان طول السنة القمرية الحقيقي يزيد بمقدار خُمس وسُدس يوم (0.36667) عن هذا المقدار فقد اصطلحوا أن يجمع هذا الفارق يزاد في آخر ذي الحجة من 11 سنة من كل 30 سنة وتسمى السنة الكبيسة فيكون أطوال الأشهر فيها على الترتيب:
30 29 30 29 30 29 30 29 30 29 30 30
ويكون طول هذه السنة 355 يوما، واصطلحوا على أن تكون هذه السنين كبيسة من كل 30 سنة:
2 5 7 10 13 15 18 21 24 26 29
ويجمعها هذا البيت:
رب اعف عن ما قد صنعت ** وكن لعبد رجا ثوابك
فالحرف المنقوط من أحرف البيت يعبر عن سنة كبيسة. ويسمى حساب التقويم بهذه الطريقة بالتقويم الهجري الاصطلاحي، ولا يوافق دائمة الرؤية ولا يزيد الفارق بينه وبين الرؤية البصرية عن يومين.
وتقوم مكتبة التقويم الهجري بالحساب وفقا لهذه القواعد المذكورة، ويعد أول أيام التقويم الهجري 1-1-1هـ يوافق الخميس 15-7-622 وفقا للتقويم اليولياني. والنتيجة الخارجة عن مكتبة التقويم الهجري مطابقة تمامًا للتقويم الهجري المزود في أنظمة مايكروسوفت ويندوز من الإصدار 3.1، ومطابقة تماما لكتاب تقويم القرون للفلكي الرائد صالح العجيري

تقويم أم القرى

هو التقويم الرسمي للمملكة العربية السعودية وعدة دول أخرى ويقوم على حسابات فلكية تحسب إمكانية رؤية الهلال في مكة المكرمة، والمسئول عن هذا التقويم مدينة الملك عبدالعزيز للعلوم والتقنية، ونطاق السنين المنشورة في موقع التقويم (http://www.ummulqura.org.sa/) حاليا هي من 1318 إلى 1500.
وفي حالة طريقة حساب أم القرى فإن مكتبة التقويم الهجري تقوم تحويل التاريخ وفقا للبيانات المنشورة في موقع تقويم أم القرى في الفترة من 1318-1500، وإذا كان التاريخ الهجري خارج تلك الفترة فإن المكتبة تقوم بالحساب وفقا للتقويم الاصطلاحي المذكور سابقا.

التقويم في php

يتعمد التقويم في Php على التقويم الجريجوري وهو عبارة عن تقويم يولياني معدل، وهو ما نسميه في البلاد العربية بالتقويم الميلادي، باعتبار أن مبدأ عد السنين من السنة التي كان يظن النصارى أن المسيح ابن مريم عليه السلام ولد فيها.
وقد كان التقويم السائد قبل 1582 هو التقويم اليولياني الذي يعتبر كل سنة تقبل القسمة على 4 بدون باق سنة كبيسة، ثم قام البابا جريجور بتعديل قاعدة الكبس لتكون كل سنة تقبل القسمة على 4 بدون باق بشرط ألا تكون سنة قرنية (مثل 1900) وكل سنة قرنية تقبل القسمة على 400 بدون باق (مثل 2000)، وبدأ العمل من سنة 1582 في تفاوت بالغ بين دول العالم النصراني حتى كانت آخر دولة هي روسيا عام 1918م.
وتعد لغة php أن التصحيح الجريجوري سائد من قبل عام 1582 م مما يتسبب في أخطاء في تعيين الأيام قبل 1582م.
ابتدأ من الإصدار 5.2 من php ثم تكوين صنف(كلاس) جديد باسم datetime يقوم هذا الكلاس بضبط اختلافات المناطق الزمنية في العالم وإظهار التاريخ بتنسيق مخصص. وقد استقرت دوال التقويم في php أكثر مع الإصدار 5.3.

التعريف بمكتبة التقويم الهجري

تحتوي المكتبة على ثلاثة كلاسات(أصناف):
الكلاس datetime: ويقوم يتوسع عمل الكلاس الأصلي بنفس الاسم في لغة Php لإظهار التقويم الهجري مع التقويم الميلادي أو بدلاُ عنه، وذلك عبر الوظيفة (الميثود) format، كما يقوم يتخزين التاريخ في كائن datetime معتمدًا على التقويم الهجري، وهذه الكلاس معتمدة على الكلاس الأخرى.
الكلاس Calendar: ويحتوي على دوال تقوم بالتحويل بين التقويم الهجري والميلادي واليوم اليولياني وهي شبيه بمجموعة دوال calendar في لغة php.
الكلاس CalendarAdjustment: (جديد في الإصدار 2.1) ويحتوي على دوال الخاصة بإدراج تعديلات في تقويم أم القرى ليكون موافقا للرؤية الشرعية.

متطلبات التشغيل:

تتطلب عمل مكتبة التقويم الهجري على الإصدار 5,3 على الأقل من php.

مميزات المكتبة

  • التقويم الاصطلاحي في المكتبة مطابق تماما للتقويم المتعارف عليه عند الفلكيين ومطابق للتقويم عند شركة مايكروسوفت في جميع برامجها، ومطابق لكتاب تقويم القرون للفلكي صالح العجيري، بخلاف بعض المكتبات المنشورة كمكتبة ar-php للاستاذ خالد الشمعة التي يختلف فيها التقويم عما ذكر.
  • تقويم أم القرى مطابق لتقويم أم القرى 100%.
  • إمكانية حفظ واسترجاع تعديلات على التقويم بحيث تتناسب مع إعلان رمضان والأعياد وغير ذلك، ويتم حفظ هذه التعديلات وليست مؤقتة بحيث أن ما نشر في تاريخ معين يبقى بهذا التاريخ حتى بعد سنين.
  • الجمع بين التقويمين الميلادي والهجري في سطر واحد من البرمجة مما يوفر ويضبط.
  • استعمال نفس حروف التنسيق في دالة date فقط بإضافة _ قبلها.
  • استعمال مكتبة datetime التي تقوم بضبط فروق التوقيت تلقائيا.
  • عرض التقويم الميلادي باللغة العربية في حالة اختيارها.
  • دعم 20 لغة عالمية في أسماء الأشهر الهجرية.

الدليل السريع للعمل بالمكتبة

أولًا يجب تضمين ملف المكتبة في ملف php هكذا:
<?php
			require_once('hirji.class.php');
إذا كان ملف المكتبة في مسار آخر غير ما يلزم.
لعرض تاريخ اليوم بالهجري:
echo (new hijri\datetime());
يعرض:
8 شعبان 1436هـ
لعرض التقويم الهجري مع الميلادي:
echo (new hijri\datetime())->format('D _j _M _Yهـ (j-m-Yم)');
يعرض:
الثلاثاء 8 شعبان 1436هـ (26-05-2015م)
لعرض تأريخ يوم ميلادي معين بالهجري:
echo (new hijri\datetime("2015-5-22"))->format('D _j _M _Yهـ (j-m-Yم)');
يعرض:
الجمعة 4 شعبان 1436هـ (22-05-2015م)
لعرض تاريخ يوم هجري معين:
$d=hijri\datetime::createFromHijri(1436,9,1);
echo $d->format('D _j _M _Yهـ (j-m-Yم)');
يعرض:
الخميس 1 رمضان 1436هـ (18-06-2015م)

الإعدادات العامة المكتبة

يمكن ضبط الاعدادات العامة للمكتبة عبر تخزينها في متغير مصفوفة (array) باسم $hijri_settings وهذا مثال لهذا:
$hijri_settings=array(
	'langcode'=>'ar',
	'defaultformat' => '_j _M _Yهـ',
	'umalqura' => TRUE,
	'adj_data' => array(1426 => 57250, 1474 => 58668,),
	'grdate_format' => 'j M Y',
	);
وتفصيل هذه الإعدادات كالآتي:
  • langcode يعين لغة تنسيق التاريخ والوقت والخيارات المتاحة هي 'ar' للعربية, ولجميع اللغات الأخرى تعرض المكتبة النص الإنجليزي، الاعداد الافتراضي هو 'ar'
  • defaultformat الصيغة الافتراضية للتاريخ، وفي حالة طلب الدالة وعدم تحديد الصيغة فإن هذه الصيغة سيتم عرضها، الاعداد الافتراضي هو '_j _M _Yهـ'
  • umalqura تحدد ما إذا كان سيتم الحساب على أساس تقويم أم القرى، القيم المتاحة هي TRUE لاستخدام تقويم أم القرى، FALSE لاستخدام التقويم الاصطلاحي، القيمة الافتراضية هي TRUE.
  • adj_data_sourceيحتوي هذا الإعداد على مصفوفة (array) تقوم تحديد مكان تخزين التعديلات على تقويم أم القرى كالآتي: (ملغي في الإصدار 2.1)
  • adj_data (جديد في الإصدار 2.1) ويحتوي على بيانات التعديلات سواء في صورة نصية كما في المثال ويمكن الحصول عليها عبر الدالة get_txt_adjdata() التابعة للكائن CalendarAdjustment.
  • grdate_format (جديد في الإصدار 2.1) وهذا الإعداد خاص بالكائن CalendarAdjustment بحيث يحدد الصيغة التي يتم بها إخراج التواريخ الجريجورية.
والإعداد الأول والثاني منها (langcode, defaultformat) خاص بصنف (كلاس) datetime، والثالث والرابع خاص بكلاس calendar، ويمكن ضبط إعدادات كلاس calendar بنفس طريقة عند إنشاء كائن جديد من الصنف.

دوال كلاس datetime

تحتوي كلاس datetime على كافة دوال الكلاس datetime في لغة php مع توسيع في عمل دالة الإنشاء ودالة format وإضافة دالتين هما createfromHijri وsetDateHijri وهنا وصف للدوال المعدلة والمضافة:

دالة الإنشاء DateTime::__construct

تقوم الدالة بإنشاء مثل للكائن datetime.
والصيغة العامة لها هي:
public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL [, string langcode = NULL [, hijri\Calendar Hcal =NULL]]]] )
شرح المعاملات الإضافية:
  • langcode يحدد لغة عرض التاريخ إذا تم تحديد فسيتم تجاوز الإعداد في متغير $hijri_settings، وإذا لم يتم تعيين الإعداد في ذلك المتغير فسيتم عرض التاريخ بالعربية. القيم المتاحة هي 'ar' للعربية وبقية اللغات سوف تستعمل اللغة الإنجليزية
  • Hcal يحدد كائن calendar الذي سيتم التعامل معه، وإذا لم يتم تحديده فسيقوم إنشاء كائن جديد بالإعدادات الافتراضية .
مثال إنشاء كائن datetime باللغة العربية:
$d=hijri\datetime(NULL,NULL,'ar');
مثال إنشاء كائن datetime باللغة يعتمد على التقويم الهجري الاصطلاحي:
$d=hijri\datetime(NULL,NULL,'ar', new hijri\Calendar(['umalqura'=>FALSE,]));

دالة عرض التاريخ والوقت datetime::format()

تقوم الدالة بتنسيق الوقت والتاريخ بتنسيق معين، ولا يوجد اختلاف في معاملات الدالة ولكن الاختلاف في عمل بعض الأحرف المستعملة في التنسيق وهي كالتالي:
الحرف العمل مثال على الإخراج
عرض التقويم الهجري في كل اللغات
_j اليوم بدون أصفار دليلية 1-30
_d يوم مع أصفار دليلية 01-30
S لاحقة الأرقام الترتيبية في اللغة الإنجليزية يعمل في حالة اختيار اللغة الإنجليزية فقط (جديد في الإصدار 2.3) st-nd-th
_z رقم اليوم في السنة بداية من الصفر 0-354
_M,_F اسم الشهر محرم، صفر،..
_m رقم الشهر مع أصفار دليلية 01-12
_n رقم الشهر بدون أصفار دليلية 1-12
_t عدد الأيام في الشهر 29-30
_L السنة كبيسة أم لا 1=كبيسة، 0=ليست كبيسة
_Y السنة رقم كامل 1436
_y السنة من رقمين 36
تحوير عمل أحرف عرض التاريخ الميلادي في حالة اختيار اللغة العربية
l, D اسم يوم الأسبوع السبت، الأحد...
F أسماء الأشهر الميلادية بالتسمية السريانية كانون الثاني، شباط ...
M أسماء الأشهر الميلادية بالتسمية الإنجليزية يناير، فبراير ...
a الرمز ص، م ص-م
A صباحا ومساء صباحا -مساء
مثال:
echo (new hijri\datetime())->format('D _j _M _Yهـ (j-m-Yم)');
يعرض:
الثلاثاء 8 شعبان 1436هـ (26-05-2015م)

الدالة datetime::CreateFromHijri()

تقوم هذه الدالة بإنشاء كائن datetime من تاريخ هجري وهي دالة من نوع static بمعنى أنك لا تعتمد على كائن، وصيغتها:
static CreateFromHijri(int year,int month, int day)
المدخلات هي السنة ، اليوم والشهر على الترتيب
مثال:
$d=hijri\datetime::createFromHijri(1436,9,1);
echo $d->format('D _j _M _Yهـ (j-m-Yم)');
يعرض:
الخميس 1 رمضان 1436هـ (18-06-2015م)
لاحظ أن هذه الدالة لا تقوم بفحص التاريخ المدخل هل هو صحيح أم لا بل تقوم بترحيل أي زيادة أو نقض وهذا يفيد في حالات مثلا إذا كانت تريد الشهر الذي قبل شهر معين مثلا:
function get_before_month($year,$month,$day)
			{
				return \hijri\datetime::createFromHijri($year,$month-1,$day);
			}
			echo get_before_month(1436,1,10);
الناتج سيكون:
10 ذو الحجة 1435هـ

الدالة setDateHijri

تقوم بإعادة ضبط التاريخ في الكائن إلى التاريخ المعين:
 seDateHijri(int year,int month, int day)
المدخلات هي السنة والشهر واليوم على التوالي.
مثال:
$d=new hijri\datetime();
	echo $d;
	echo  '
'; $d->setDateHijri(1436,9,1); echo $d;
الناتج:
9 شعبان 1436هـ
1 رمضان 1436هـ
وهذه الدالة كسابقتها لا تقوم بفحص التاريخ وتقوم بترحيل إية زيادة أو نقصان.

دوال الكائن hijri\calendar

هذا الكائن يجمع مجموعة دوال تقوم بمهمة مشابهة لمجموعة دوال calendar في لغة php مع فارق أنها في الأساس لدعم التقويم الهجري.

دالة الإنشاء calendar::__construct()

تقوم الدالة بإنشاء كائن calendar جديد مع ضبط بعض الخصائص الخاصة به.
الصيغة:
calendar::__construct( array settings=array())
settings متغير من نوع مصفوفة يحتوي على إعدادات التقويم وهي نفس الإعدادات التي تم شرحها مسبقا.
مثال:
$c=new hijri\Calendar(array(
		'umalqura'=> TRUE,
		'adj_data' => '1426 => 57250, 1429 => 57339,',

	);
يقوم هذا المثال بإنشاء كائن calendar معتمدا على تقويم أم القرى مع تعديل مخزن في ملف adj.txt في نفس المسار.

الدالة jd2hijri()

تقوم الدالة بتحويل اليوم اليولياني إلى تقويم هجري.
JD2hijri(int julianday,  int &hy, int  &hm, int &hd,  int &hz)
المتغيرات: julianday متغير من نوع عدد صحيح لليوم اليولياني. hy, hm, hd, hz متغيرات إخراج من نوع عدد صحيح لتخزين السنة، والشهر، واليوم في الشهر، واليوم في السنة على ترتبها على التوالي
مثال
$c=new hijri\Calendar();
	$c->jd2hijri(2450000, $hy,$hm,$hd,$hz);
	echo "اليوم اليولياني 2450000 يوافق $hd - $hm -$hy في التاريخ الهجري"; 
النتيجة:
اليوم اليولياني 2450000 يوافق 15 - 5 -1416 في التاريخ الهجري

الدالة HijriToJD()

تقوم بإرجاع اليوم اليولياني لتاريخ هجري معين
الصيغة
HijriToJD(int month, int day, int year)
مدخلات الدالة هي الشهر واليوم والسنة على التوالي
تقوم الدالة بإخراج اليوم اليولياني
مثال:
$c=new hijri\Calendar();
	$j=$c->HijriToJD(1, 1, 1);
	echo "أول يوم في التقويم الهجري يوافق ". jdtojewish($j) . "في التاريخ اليهودي <br>";
	echo "كما يوافق ". jdtojulian($j) . "في التقويم اليولياني <br>";
	echo "كما يوافق ". jdtogregorian($j) . "في التقويم الجريجوري <br>";
	echo "كما يوافق ". jdtofrench($j) . "في تقويم الثورة الفرنسية <br>";
الإخراج:
أول يوم في التقويم الهجري يوافق 12/2/4382في التاريخ اليهودي 
كما يوافق 7/15/622في التقويم اليولياني 
كما يوافق 7/18/622في التقويم الجريجوري 
كما يوافق 0/0/0في تقويم الثورة الفرنسية

JDToHijri()

تقوم بنفس عمل الدالة jd2hijri مع الاختلاف أنها تخرج التاريخ بتنسيق شهر/يوم/سنة.
مثال:
 echo (new hijri\Calendar())->JDToHijri(2450000);
النتيجة:
5/15/1416

days_in_month()

تقوم بإرجاع عدد أيام الشهر
الصيغة:
 int days_in_month(int month, int year, bool umalqura=null)
المدخلات: month ,year الشهر والسنة المراد إخراجه.
umalqura تحدد ما إذا كان سيتم استخدام تقويم أم القرى
مثال
echo (new hijri\Calendar())->days_in_month(9,1436);
الناتج:
29

leap_year()

تحدد ما إذا كانت السنة كبيسة أم لا
الصيغة
 int leap_year(int year, bool umalqura=null)
year رقم السنة.
umalqura تحديد ما استعمال تقويم أم القرى. الإخراج يكون 1 للسنة الكبيسة و0 للسنة البسيطة

checkHijriDate()

يقوم بفحص صحة تاريخ هجري
الصيغة:
bool checkHijriDate(int year, int month, int day)
المدخلات هي السنة ، الشهر ، اليوم ، على التوالي
مثال:
$hy = 1436; $hm= 9;$hd=30;
$c=new hijri\Calendar();
if($c->checkHijriDate($hy,$hm,$hd))
{
	echo "التاريخ $hd - $hm - $hy صحيح في تقويم أم القرى";
}else
{
	echo "التاريخ $hd - $hm - $hy غير صحيح في تقويم أم القرى";
}
الإخراج:
التاريخ 30 - 9 - 1436 غير صحيح في تقويم أم القرى

دوال التحويل بين التقاويم GregorianToHijri, HijriToGregorian, JulianToHijri, HijriToJulian, WesternToHijri, HijriToWestern

تقوم هذه الدول بالتحويل بين التقاويم الهجري والميلادي والجريجوري واليولياني والصييغة العامة لها
array function(int year, int month, int day)
حيث function اسم الدالة والمدخلات هي السنة والشهر واليوم على الترتيب
ويكون الإخراج على شكل مصفوفة كالتالي:
array(
'y' => السنة,
'm' => الشهر,
'd' => اليوم )
وتفصيل عمل الدوال كالآتي
GregorianToHijri تحويل من التقويم الجريجوري (المعمول به حاليا في جميع الدول) إلى التقويم الهجري
HijriToGregorian تحويل من التقويم الهجري إلى الجريجوي
JulianToHijri التحويل من التقويم اليولياني الذي كان سائدا قبل التصحيح الجريجوري عام 1582 ويستعمل الآن نادرا في بعض الكنائس الشرقية إلى التقويم الهجري
HijriToJulian التحويل من التقويم الهجري إلى التقويم اليولياني,
WesternToHijri التحويل من التقويم الغربي الميلادي والذي هو مزيج من التقويم اليولياني قبل 1582 والتقويم الجريجوري بعد 1582 إلى التقويم الهجري.
HijriToWestern التحويل من التقويم الهجري إلى التقويم الغربي الميلادي
وإذا كنت تريد التحويل بين التقويم الميلادي المتداول والتقويم الهجري فاستعمل الدالتين WesternToHijriو HijriToWestern حيث تقوم هذه الدوال بالتبديل تلقائيًا بين التقويمين الجريجوري واليولياني.
$c=new hijri\Calendar();
$m = $c->HijriToWestern(1436, 9, 1);
echo "يصادف الأول من رمضان هذه السنة ".$m['d'] ."-". $m['m'] .'-'. $m['y']." بالتقويم الميلادي";
الناتج:
يصادف الأول من رمضان هذه السنة 18-6-2015 بالتقويم الميلادي
مثال آخر:
$c=new hijri\Calendar();
$j = $c->JulianToHijri(2015, 12, 25);
$g=$c->GregorianToHijri(2015, 12, 25);
echo "سيكون عيد الميلاد عند الكنيسة القبطية وكنيسة القدس في  ".$j['d'] ."-". $j['m'] .'-'. $j['y'].
		"<br> وفي الكنائس الأخرى في ".$g['d'] ."-". $g['m'] .'-'. $g['y'].
		"<br> بفارق ". ($j['d']-$g['d']) . "يوم";
والناتج:
سيكون عيد الميلاد عند الكنيسة القبطية وكنيسة القدس في  27-3-1437
 وفي الكنائس الأخرى في 14-3-1437
 بفارق 13يوم

دوال الكائن hijri\CalendarAdjustment

(جديد في الإصدار 2.1)

تقوم الدوال بتسهيل عملية التعديل على تقويم أم القرى، ومن أراد معرفة طريقة عملها فليرجع إلى تعليمات api باللغة الإنجليزية وإلى المثال في ملف adjuster.php في مجلد examples.

تلميحات وإرشادات في عمل المكتبة

  • إذا كان لديك سكربت جاهز ولا تريد التعديل عليه وكان يعتمد على كائن datetime في إظهار الوقت والتاريخ فإمكانك عمل إضافة هذا السطر لإرشاد لفة php لاستمعال المكتبة بدلا من الكائن الأصلي:
    use hijri\datetime as datetime;
    وبهذا توفر عناء تعديل جميع الأسطر التي تحتوي على الدالة كما يمكنك ضبط إعداداتها عبر المتغير $hijri_settings
  • إذا كان لديك سكربت جاهز ولكنه يستعمل الدالة date ولا يستعمل الكائن datetime فبإمكان إضافة هذه الأسطر:
    function hdate($format, $timestamp=NULL)
    {
    	if(!isset($timestamp)) {
    		$timestamp=time();
    	}
    	$d= new hijri\datetime('@'.$timestamp);
    	return $d->format($format);
    }
    واستبدال الدالة date بـ hdate وأما إذا كان مثبت لدى الاستضافة PECL apd فقم بإضافة هذا السطر:
    rename_function("date","php_date");
    واجعل الدالة السابقة باسم date.
  • يوجد ملفadjuster.php في مجلد examples يقوم بضبط التعديلات عى تقويم أم القرى ولكن ليس لدي الوقت الكافي لجعله آمنا بما في الكفاية فأنا أنصح من أراد استعماله إما بجعله على سيرفر محلي ومن ثم لصق التعديلات على ملف التعديلات يدويا أو أن يرفعه على الموقع في مجلد محمي بكلمة مرور.