اشترك في مجموعة montadaphp.net حتى تصلك أخبار المنتدى  

بريدك الإلكتروني:

النتائج 1 إلى 8 من 8
شجرة الإعجاب4إعجاب
  • 1 Post By
  • 1 Post By
  • 2 Post By

الموضوع: مكتبة التاريخ الهجري Hijri Date lib بلغة php

  1. #1
    عضو مشارك
    تاريخ التسجيل
    09-08-2010
    المشاركات
    15
    معدل تقييم المستوى
    0

    افتراضي مكتبة التاريخ الهجري Hijri Date lib بلغة php

    مكتبة التقويم الهجري
    Hijri Date
    الحمد لله والصلاة والسلام على رسول الله وعلى آله وصحبه ومن والاه.
    .وأشهد أن لا إله إلا الله وأشهد أن محمدُا عبده ورسوله.
    أما بعد :
    فهذه دوال التقويم الهجري، تم كتابته بعناية تامة وقد راعيت فيها السهولة والسرعة، وهذا الملف في شرح للدوال وكيفية عملها. فعسى الله أن يكتب فيها الأجر والمثوبة
    التعريف بالتقويم الهجري
    التقويم الهجري(وتسميه بعض المصادر الأجنبية بالتقويم الإسلامي) هو تقويم قمري يعتمد على اختلاف منازل القمر بمرور الزمن، والشهر فيه يبتدأ من ظهور الهلال إلى ظهور الهلال التالي.
    وقد كان معروفا عند العرب قبل الإسلام، وعدة الشهور فيه اثنا عشر شهرا، قال الله تعالى:{إن عدة الشهور عند الله اثنا شهرا في كتاب الله يوم خلق السموات والأرض}. ولم يكن العرب يعدون السنين بل كانوا يسمون كل سنة بأبرز ما جاء فيها من أحداث.
    لما جاء الإسلام أقر التقويم على ما هو عليه من تسمية الشهور وترتيبها وألغى النسيء، واستمر الحال على ما هو عليه من عدم عد السنين في زمن الرسول _صلى الله عليه وعلى آله وسلم- وخلافة أبي بكر الصديق رضي الله عنه وصدرا من خلافة عمر بن الخطاب.
    ثم رأى الخليفة عمر بن الخطاب -رضي الله عنه- أهمية عد السنين من أجل إزالة الإشكال في التأريخ، فجعل عد السنين من السنة التي هاجر فيها رسول الله -صلى الله عليه وعلى آله وسلم- من مكة إلى المدينة؛ لما كان لهذا الحدث العظيم من أثر جليل على البشرية، وجعل ابتدأ السنة على ما كان معروفا عند العرب من شهر محمر، ولهذا سمي هذا التقويم بالتقويم الهجرية.
    طرق حساب التقويم الهجري
    يقوم التقويم الهجري أساسًا على الرؤية البصرية للهلال، ولم يكن العرب يعتمدون على الحساب في معرفة التقويم ثم لما تطور الحساب واحتاج الناس أن يعرفوا المقابلة بين التقاويم ومعرفة أيام الأسبوع لتواريخ ماضية قام علماء الهيئة والحساب بوضع مسائل حسابية يعتمد عليها في معرفة التأريخ السابقو اللاحق من التقويم الهجري، وقد سميت هذه القواعد بالتقويم الهجري الاصطلاحي.
    التقويم الهجري الاصطلاحي
    يقوم التقويم الهجري الاصطلاحي على تعيين طول الشهور الوترية (التي لا تقبل القسمة 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، ومطابقة تماما لكتاب تقويم القرون للفلكي الرائد صالح العجيري
    تقويم أم القرى
    هو التقويم الرسمي للمملكة العربية السعودية وعدة دول أخرى ويقوم على حسابات فلكية تحسب إمكانية رؤية الهلال في مكة المكرمة، والمسئول عن هذا التقويم مدينة الملك عبدالعزيز للعلوم والتقنية، ونطاق السنين المنشورة في موقع التقويم (موقع تقويم أم القرى) حاليا هي من 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.
    متطلبات التشغيل:
    تتطلب عمل مكتبة التقويم الهجري على الإصدار 5,3 على الأقل من php.
    مميزات المكتبة

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

    الدليل السريع للعمل بالمكتبة
    أولًا يجب تضمين ملف المكتبة في ملف php هكذا:

    كود PHP:
       <?php 
                
    require_once('hirji.class.php');
    إذا كان ملف المكتبة في مسار آخر غير ما يلزم.
    لعرض تاريخ اليوم بالهجري:
    كود PHP:
        echo (new hijri\datetime()); 
    يعرض:

    رمز Code:
    8 شعبان 1436هـ
    لعرض التقويم الهجري مع الميلادي:

    كود PHP:
        echo (new hijri\datetime())->format('D _j _M _Yهـ (j-m-Yم)'); 
    يعرض:

    كود HTML:
    الثلاثاء 8 شعبان 1436هـ (26-05-2015م) 
    لعرض تأريخ يوم ميلادي معين بالهجري:
    كود PHP:
        echo (new hijri\datetime("2015-5-22"))->format('D _j _M _Yهـ (j-m-Yم)'); 
    يعرض:
    كود:
    الجمعة 4 شعبان 1436هـ (22-05-2015م)
    لعرض تاريخ يوم هجري معين:
    كود PHP:
    $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(
    كود PHP:
         'langcode'=>'ar'
        
    'defaultformat'=>'_j _M _Yهـ'
        
    'umalqura'=TRUE
        
    'adj_data_source' => array( 
            
    'type' => 'mysql'
            
    'connection' => '"localhost","root","password","hijri"'
            
    'get_sql' => "SELECT thevalue FROM table1 WHERE theset='hijri'"
            
    'set_sql' => "UPDATE table1 SET thevalue='%s' WHERE theset='hijri'"
            ), 
        ); 
    وتفصيل هذه الإعدادت كالآتي:

    langcode يعين لغة تنسيق التاريخ والوقت والخيارات المتاحة هي 'ar' للعربية, ولجميع اللغات الأخرى تعرض المكتبة النص الإنجليزي، الاعداد الافتراضي هو 'ar'
    defaultformat الصيغة الافتراضية للتاريخ، وفي حالة طلب الدالة وعدم تحديد الصيغة فإن هذه الصيغة سيتم عرضها، الاعداد الافتراضي هو '_j _M _Yهـ'
    umalqura تحدد ما إذا كان سيتم الحساب على أساس تقويم أم القرى، القيم المتاحة هي TRUE لاستخدام تقويم أم القرى، FALSE لاستخدام التقويم الاصطلاحي، القيمة الافتراضية هي TRUE.
    adj_data_sourceيحتوي هذا الإعداد على مصفوفة (array) تقوم تحديد مكان تخزين التعديلات على تقويم أم القرى كالآتي:
    typeيحدد نوع التخزين وهناك خياران وهما:
    mysql: أي أن بيانات التعديل ستخزن في قاعدة بيانات mysql وفي هذه الحالة يجب يتعيين ثلاثة خيارات وهي:
    connection يحدد هذا الخيار مدخلات دالة mysqli_connect على ترتيبها.
    get_sql ويحدد هذا الخيار عبارة sql التي يتم بها الاستعلام على بيانات المدخلات.
    set_sql ويحدد هذا الخيار عبارة sql التي يتم بها حفظ بيانات المدخلات حيث يكون النص محل %s.
    وما تقدم مثال على ذلك.
    file: أي أن بيانات التعديل ستخزن في ملف وفي هذه الحالة يجب يتعيين خيار واحد وهو:
    file_path: وهذا الخيار يعين مسار ملف التعديلات بالنسبة لمسار ملف المكتبة.
    وهذا مثال:
    كود PHP:
    $hijri_settings=array( 
                     
    'adj_data_source' => array( 
                            
    'type' => 'file'
                            
    'file_path' => 'adjuster/adj.txt'
                            ), 
                    ); 
    والإعداد الأول والثاني منها (langcode, defaultformat) خاص بصنف (كلاس) datetime، والثالث والرابع خاص بكلاس calendar، ويمكن ضبط إعدادات كلاس calendar بنفس طريقة عند إنشاء كائن جديد من الصنف.
    دوال كلاس datetime
    تحتوي كلاس datetime على كافة دوال الكلاس datetime في لغة php مع توسيع في عمل دالة الإنشاء ودالة format وإضافة دالتين هما createfromHijri وsetDateHijri وهنا وصف للدوال المعدلة والمضافة:
    دالة الإنشاء DateTime::__construct
    تقوم الدالة بإنشاء مثل للكائن datetime.
    والصيغة العامة لها هي:
    كود PHP:
        public DateTime::__construct ([ string $time "now" [, DateTimeZone $timezone NULL [, string langcode NULL [, hijri\Calendar Hcal =NULL]]]] ) 
    شرح المعاملات الإضافية:

    langcode يحدد لغة عرض التاريخ إذا تم تحديد فسيتم تجاوز الإعداد في متغير $hijri_settings، وإذا لم يتم تعيين الإعداد في ذلك المتغير فسيتم عرض التاريخ بالعربية. القيم المتاحة هي 'ar' للعربية وبقية اللغات سوف تستعمل اللغة الإنجليزية
    Hcal يحدد كائن calendar الذي سيتم التعامل معه، وإذا لم يتم تحديده فسيقوم إنشاء كائن جديد بالإعدادت الافتراضية .

    مثال إنشاء كائن datetime باللغة العربية:
    كود PHP:
    $d=hijri\datetime(NULL,NULL,'ar'); 
    مثال إنشاء كائن datetime باللغة يعتمد على التقويم الهجري الاصطلاحي:
    كود PHP:
    $d=hijri\datetime(NULL,NULL,'ar', new hijri\Calendar(['umalqura'=>FALSE,])); 
    دالة عرض التاريخ والوقت datetime::fromat()
    تقوم الدالة بتنسيق الوقت والتاريخ بتنسيق معين، ولا يوجد اختلاف في معاملات الدالة ولكن الاختلاف في عمل بعض الأحرف المستعملة في التنسيق وهي كالتالي:
    الحرف العمل مثال على الإخراج
    عرض التقويم الهجري في كل اللغات
    _j اليوم بدون أصفار دليلية 1-30
    _d يوم مع أصفار دليلية 01-30
    _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 صباحا ومساء صباحا -مساء
    مثال:
    كود PHP:
        echo (new hijri\datetime())->format('D _j _M _Yهـ (j-m-Yم)'); 
    يعرض:

    كود:
    الثلاثاء 8 شعبان 1436هـ (26-05-2015م)
    الدالة datetime::CreateFromHijri()
    تقوم هذه الدالة بإنشاء كائن datetime من تاريخ هجري وهي دالة من نوع static بمعنى أنك لا تعتمد على كائن، وصيغتها:
    كود PHP:
        static CreateFromHijri(int year,int monthint day
    المدخلات هي السنة ، اليوم والشهر على الترتيب
    مثال:
    كود PHP:
    $d=hijri\datetime::createFromHijri(1436,9,1); 
     echo 
    $d->format('D _j _M _Yهـ (j-m-Yم)'); 
    يعرض:

    كود:
    الخميس 1 رمضان 1436هـ (18-06-2015م)
    لاحظ أن هذه الدالة لا تقوم بفحص التاريخ المدخل هل هو صحيح أم لا بل تقوم بترحيل أي زيادة أو نقض وهذا يفيد في حالات مثلا إذا كانت تريد الشهر الذي قبل شهر معين مثلا:
    كود PHP:
    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
    تقوم بإعادة ضبط التاريخ في الكائن إلى التاريخ المعين:
    كود PHP:
      setDateHijri(int year,int monthint day 
    )
    المدخلات هي السنة والشهر واليوم على التوالي.
    مثال:
    كود PHP:
        $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 جديد مع ضبط بعض الخصائص الخاصة به.
    الصيغة:
    كود PHP:
    calendar::__construct( array settings=array()) 
    settings متغير من نوع مصفوفة يحتوي على إعدادات التقويم وهي نفس الإعدادات التي تم شرحها مسبقا.
    مثال:
    كود PHP:
    $c=new hijri\Calendar(array( 
             
    'umalqura'=> TRUE
        
    'adj_data_source' => array( 
                
    'type' => 'file'
                
    'file_path' => 'adj.txt'
                ), 
        ); 
    يقوم هذا المثال بإنشاء كائن calendar معتمدا على تقويم أم القرى مع تعديل مخزن في ملف adj.txt في نفس المسار.
    الدالة jd2hijri()
    تقوم الدالة بتحويل اليوم اليولياني إلى تقويم هجري.
    كود PHP:
     JD2hijri(int julianday,  int &hyint  &hmint &hd,  int &hz
    المتغيرات: julianday متغير من نوع عدد صحيح لليوم اليولياني. hy, hm, hd, hz متغيرات إخراج من نوع عدد صحيح لتخزين السنة، والشهر، واليوم في الشهر، واليوم في السنة على ترتبها على التوالي
    مثال
    كود PHP:
    $c=new hijri\Calendar(); 
         
    $c->jd2hijri(2450000$hy,$hm,$hd,$hz); 
        echo 
    "اليوم اليولياني 2450000 يوافق $hd - $hm -$hy في التاريخ الهجري"
    النتيجة:

    كود:
    اليوم اليولياني 2450000 يوافق 15 - 5 -1416 في التاريخ الهجري
    الدالة HijriToJD()
    تقوم بإرجاع اليوم اليولياني لتاريخ هجري معين
    الصيغة
    كود PHP:
     HijriToJD(int monthint dayint year
    مدخلات الدالة هي الشهر واليوم والسنة على التوالي
    تقوم الدالة بإخراج اليوم اليولياني
    مثال:
    كود PHP:
    $c=new hijri\Calendar(); 
         
    $j=$c->HijriToJD(111); 
        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 مع الاختلاف أنها تخرج التاريخ بتنسيق شهر/يوم/سنة.
    مثال:

    كود PHP:
        echo (new hijri\Calendar())->JDToHijri(2450000); 
    النتيجة:
    كود:
      5/15/1416
    days_in_month()
    تقوم بإرجاع عدد أيام الشهر
    الصيغة:
    كود PHP:
      int days_in_month(int monthint yearbool umalqura=null
    المدخلات: month ,year الشهر والسنة المراد إخراجه.
    umalqura تحدد ما إذا كان سيتم استخدام تقويم أم القرى
    مثال
    كود PHP:
        echo (new hijri\Calendar())->days_in_month(9,1436); 
    الناتج:
    كود:
     29
    leap_year()
    تحدد ما إذا كانت السنة كبيسة أم لا
    الصيغة
    كود PHP:
      int leap_year(int yearbool umalqura=null
    year رقم السنة.
    umalqura تحديد ما استعمال تقويم أم القرى. الإخراج يكون 1 للسنة الكبيسة و0 للسنة البسيطة
    checkHijriDate()
    يقوم بفحص صحة تاريخ هجري
    الصيغة:
    كود PHP:
     bool checkHijriDate(int yearint monthint day 
     

    المدخلات هي السنة ، الشهر ، اليوم ، على التوالي
    مثال:
    كود PHP:
    $hy 1436$hm9;$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
    تقوم هذه الدول بالتحويل بين التقاويم الهجري والميلادي والجريجوري واليولياني والصييغة العامة لها
    كود PHP:
     array function(int yearint monthint day
    حيث function اسم الدالة والمدخلات هي السنة والشهر واليوم على الترتيب
    ويكون الإخراج على شكل مصفوفة كالتالي:
    كود PHP:
    array( 
    'y' => السنة
    'm' => الشهر
    'd' => اليوم 
    وتفصيل عمل الدوال كالآتي
    GregorianToHijri تحويل من التقويم الجريجوري (المعمول به حاليا في جميع الدول) إلى التقويم الهجري
    HijriToGregorian تحويل من التقويم الهجري إلى الجريجوي
    JulianToHijri التحويل من التقويم اليولياني الذي كان سائدا قبل التصحيح الجريجوري عام 1582 ويستعمل الآن نادرا في بعض الكنائس الشرقية إلى التقويم الهجري
    HijriToJulian التحويل من التقويم الهجري إلى التقويم اليولياني,
    WesternToHijri التحويل من التقويم الغربي الميلادي والذي هو مزيج من التقويم اليولياني قبل 1582 والتقويم الجريجوري بعد 1582 إلى التقويم الهجري.
    HijriToWestern التحويل من التقويم الهجري إلى التقويم الغربي الميلادي
    وإذا كنت تريد التحويل بين التقويم الميلادي المتداول والتقويم الهجري فاستعمل الدالتين WesternToHijriو HijriToWestern حيث تقوم هذه الدوال بالتبديل تلقائيًا بين التقويمين الجريجوري واليولياني.
    كود PHP:
        $c=new hijri\Calendar(); 
    $m $c->HijriToWestern(143691); 
    echo 
    "يصادف الأول من رمضان هذه السنة ".$m['d'] ."-"$m['m'] .'-'$m['y']." بالتقويم الميلادي"
    الناتج:

    كود:
    يصادف الأول من رمضان هذه السنة 18-6-2015 بالتقويم الميلادي
    مثال آخر:
    كود PHP:
    $c=new hijri\Calendar(); 
     
    $j $c->JulianToHijri(20151225); 
    $g=$c->GregorianToHijri(20151225); 
    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يوم
    تلميحات وإرشادات في عمل المكتبة

    إذا كان لديك سكربت جاهز ولا تريد التعديل عليه وكان يعتمد على كائن datetime في إظهار الوقت والتاريخ فإمكانك عمل إضافة هذا السطر لإرشاد لفة php لاستمعال المكتبة بدلا من الكائن الأصلي:

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

    التحميل:
    http://www.salafitech.net/bb/download/file.php?id=18
    يوسف الحمود معجب بهذا .

  2. #2
    عضو مشارك
    تاريخ التسجيل
    09-08-2010
    المشاركات
    15
    معدل تقييم المستوى
    0

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    هنا مثال على إخراج تقويم شهر بمساعدة مكتبة التقويم الهجري

    قم بتغيير الاستايل كما تحب، والاستايل مأخوذ من درس على الإنترنت لا أذكر مصدره.

    التحميل
    http://www.salafitech.net/bb/download/file.php?id=20
    المصغرات المرفقة المصغرات المرفقة 1436-08-13-19_53_28-158.jpg  
    يوسف الحمود معجب بهذا .

  3. #3
    Webmaster
    "رب زدني علما"
    الصورة الرمزية يوسف الحمود
    تاريخ التسجيل
    24-12-2006
    المشاركات
    4,961
    معدل تقييم المستوى
    10

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    بارك الله فيك أخي الكريم ...
    سبق أن استخدمت هذه المكتبة وهي جميلة جدا ... المشكلة التي واجهتني زيادة يوم أو نقصان يوم في بعض الأشهر ...
    لا تعطني سمكة بل علمني كيف أصطاد
    "قد ترى السماء من ثقب إبرة"
    اللهم اشف عبدك عاطف عطوان وأنزل عليه عطفك ورحمتك وشفائك ... وجميع مرضى المسلمين ... آمين


    من استفاد من مواضيعي أو كتاباتي وأحب رد الجميل لي ... فليدعو لي بأن يرزقني الله من خيري الدنيا والآخرة وأن يفتح علي أبواب الرزق ...

    قوانين منتدى بي اتش بي

    Regulations Montada PHP




  4. #4
    عضو مشارك
    تاريخ التسجيل
    09-08-2010
    المشاركات
    15
    معدل تقييم المستوى
    0

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    هذا إصدار جديد فيه خيار موافق لتقويم أم القرى مع إمكانية تعديل بداية الأشهر

  5. #5
    عضو مشارك
    تاريخ التسجيل
    23-04-2008
    المشاركات
    73
    معدل تقييم المستوى
    10

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    بارك الله فيك أخي الكريم ...

  6. #6
    عضو شرف
    تاريخ التسجيل
    31-12-2009
    السن
    25
    المشاركات
    423
    معدل تقييم المستوى
    8

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    شكراااا اللهم زد وبارك
    قال الإمام البخاري في آخر (كتاب التوحيد) من صحيحه:
    حدثني أحمد بن إشكاب حدثنا محمد بن فضيل عن عمارة بن القعقاع عن أبي زرعة عن أبي هريرة _ رضي الله عنه _ قال: قال النبي _ صلى الله عليه وسلم _ : ((كلمتان حبيبتان إلى الرحمن، خفيفتان على اللسان، ثقيلتان في الميزان: سبحان الله وبحمده، سبحان الله العظيم))

  7. #7
    عضو مشارك
    تاريخ التسجيل
    09-08-2010
    المشاركات
    15
    معدل تقييم المستوى
    0

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    جديد الإصدار 2.2.0


    • إضافة كلاس جديد CalendarAdjustment يقوم تسهيل عملية التعديل على تقويم أم القرى
    • تحسين لعمل بعض الدوال وإضافة بعض المعاملات
    • توثيق لعمل الدوال بمستندات قياسية في مجلد docs\api
    • إضافة موقع على github وهو https://github.com/hubaishan/HijriDateLib/


    للتحميل
    https://github.com/hubaishan/HijriDa...ive/v2.2.0.zip
    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة يوسف الحمود ; 05-10-2015 الساعة 04:00 PM سبب آخر: اضافة الاصدار الجديد في الموضوع ...

  8. #8
    عضو مشارك
    تاريخ التسجيل
    09-08-2010
    المشاركات
    15
    معدل تقييم المستوى
    0

    افتراضي رد: مكتبة التاريخ الهجري Hijri Date lib بلغة php

    نسيت من مميزات الإصدار الجديد:
    عرض التقويم الهجري بـ 20 لغة عالمية

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

المواضيع المتشابهه

  1. درس قاعدة التحويل من التاريخ الميلادي الي التاريخ الهجري
    بواسطة يوسف الحمود في المنتدى دروس متقدمة
    مشاركات: 2
    آخر مشاركة: 15-07-2012, 11:52 PM
  2. استفسار طلب كود لعرض التاريخ الهجري ويوافقه التاريخ الميلادي
    بواسطة ahmad__0 في المنتدى مشاكل وحلول PHP Errors & Troubleshooting
    مشاركات: 1
    آخر مشاركة: 27-08-2011, 12:31 AM
  3. التاريخ - Date في PHP
    بواسطة General C في المنتدى دروس متقدمة
    مشاركات: 9
    آخر مشاركة: 16-09-2010, 11:51 AM
  4. إرجاع التاريخ الميلادي من التاريخ الهجري
    بواسطة azzamm51 في المنتدى مشاكل وحلول PHP Errors & Troubleshooting
    مشاركات: 2
    آخر مشاركة: 10-08-2010, 02:30 AM

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •