<?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م)
$hijri_settings=array( 'langcode'=>'ar', 'defaultformat' => '_j _M _Yهـ', 'umalqura' => TRUE, 'adj_data' => array(1426 => 57250, 1474 => 58668,), 'grdate_format' => 'j M Y', );وتفصيل هذه الإعدادات كالآتي:
public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL [, string langcode = NULL [, hijri\Calendar Hcal =NULL]]]] )شرح المعاملات الإضافية:
$d=hijri\datetime(NULL,NULL,'ar');مثال إنشاء كائن datetime باللغة يعتمد على التقويم الهجري الاصطلاحي:
$d=hijri\datetime(NULL,NULL,'ar', new hijri\Calendar(['umalqura'=>FALSE,]));
الحرف | العمل | مثال على الإخراج |
عرض التقويم الهجري في كل اللغات | ||
_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م)
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هـ
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هـوهذه الدالة كسابقتها لا تقوم بفحص التاريخ وتقوم بترحيل إية زيادة أو نقصان.
calendar::__construct( array settings=array())settings متغير من نوع مصفوفة يحتوي على إعدادات التقويم وهي نفس الإعدادات التي تم شرحها مسبقا.
$c=new hijri\Calendar(array( 'umalqura'=> TRUE, 'adj_data' => '1426 => 57250, 1429 => 57339,', );يقوم هذا المثال بإنشاء كائن calendar معتمدا على تقويم أم القرى مع تعديل مخزن في ملف adj.txt في نفس المسار.
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(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في تقويم الثورة الفرنسية
echo (new hijri\Calendar())->JDToHijri(2450000);النتيجة:
5/15/1416
int days_in_month(int month, int year, bool umalqura=null)المدخلات: month ,year الشهر والسنة المراد إخراجه.
echo (new hijri\Calendar())->days_in_month(9,1436);الناتج:
29
int leap_year(int year, bool umalqura=null)year رقم السنة.
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 غير صحيح في تقويم أم القرى
array function(int year, int month, int day)حيث function اسم الدالة والمدخلات هي السنة والشهر واليوم على الترتيب
array( 'y' => السنة, 'm' => الشهر, 'd' => اليوم )وتفصيل عمل الدوال كالآتي
$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يوم
تقوم الدوال بتسهيل عملية التعديل على تقويم أم القرى، ومن أراد معرفة طريقة عملها فليرجع إلى تعليمات api باللغة الإنجليزية وإلى المثال في ملف adjuster.php في مجلد examples.
use hijri\datetime as datetime;وبهذا توفر عناء تعديل جميع الأسطر التي تحتوي على الدالة كما يمكنك ضبط إعداداتها عبر المتغير $hijri_settings
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.