محمد عبد العاطى نشر 19 يوليو 2015 أرسل تقرير نشر 19 يوليو 2015 استخدم الدالة DateTime لحساب وعرض التوقيت في الموقع الخاص بي ، ارغب في فى تحويل طريقة عرض التواريخ بالتقويم الهجري في الموقع ، على سبيل المثال الأحد 02 شوال 1436 09:01:21 مساءً هل يمكن تعديل الدالة DateTime بعرض التاريخ بالشكل الهجري ؟ ام احتاج الى استخدام دالة اخرى ؟ اقتباس
0 هشام رزق الله نشر 11 سبتمبر 2015 أرسل تقرير نشر 11 سبتمبر 2015 تم إنشاء دالة لإظهار التاريخ باستخدام التقويم الهجري، وهذه الدالة يجب إرفاقها مع ملف المشروع، الشيفرة المصدرية للدالة:function gmod(n,m){ return ((n%m)+m)%m; } function kuwaiticalendar(adjust){ var today = new Date(); if(adjust) { adjustmili = 1000*60*60*24*adjust; todaymili = today.getTime()+adjustmili; today = new Date(todaymili); } day = today.getDate(); month = today.getMonth(); year = today.getFullYear(); m = month+1; y = year; if(m<3) { y -= 1; m += 12; } a = Math.floor(y/100.); b = 2-a+Math.floor(a/4.); if(y<1583) b = 0; if(y==1582) { if(m>10) b = -10; if(m==10) { b = 0; if(day>4) b = -10; } } jd = Math.floor(365.25*(y+4716))+Math.floor(30.6001*(m+1))+day+b-1524; b = 0; if(jd>2299160){ a = Math.floor((jd-1867216.25)/36524.25); b = 1+a-Math.floor(a/4.); } bb = jd+b+1524; cc = Math.floor((bb-122.1)/365.25); dd = Math.floor(365.25*cc); ee = Math.floor((bb-dd)/30.6001); day =(bb-dd)-Math.floor(30.6001*ee); month = ee-1; if(ee>13) { cc += 1; month = ee-13; } year = cc-4716; if(adjust) { wd = gmod(jd+1-adjust,7)+1; } else { wd = gmod(jd+1,7)+1; } iyear = 10631./30.; epochastro = 1948084; epochcivil = 1948085; shift1 = 8.01/60.; z = jd-epochastro; cyc = Math.floor(z/10631.); z = z-10631*cyc; j = Math.floor((z-shift1)/iyear); iy = 30*cyc+j; z = z-Math.floor(j*iyear+shift1); im = Math.floor((z+28.5001)/29.5); if(im==13) im = 12; id = z-Math.floor(29.5001*im-29); var myRes = new Array(8); myRes[0] = day; //calculated day (CE) myRes[1] = month-1; //calculated month (CE) myRes[2] = year; //calculated year (CE) myRes[3] = jd-1; //julian day number myRes[4] = wd-1; //weekday number myRes[5] = id; //islamic date myRes[6] = im-1; //islamic month myRes[7] = iy; //islamic year return myRes; } function writeIslamicDate(adjustment) { var wdNames = new Array("Ahad","Ithnin","Thulatha","Arbaa","Khams","Jumuah","Sabt"); var iMonthNames = new Array("Muharram","Safar","Rabi'ul Awwal","Rabi'ul Akhir", "Jumadal Ula","Jumadal Akhira","Rajab","Sha'ban", "Ramadan","Shawwal","Dhul Qa'ada","Dhul Hijja"); var iDate = kuwaiticalendar(adjustment); var outputIslamicDate = wdNames[iDate[4]] + ", " + iDate[5] + " " + iMonthNames[iDate[6]] + " " + iDate[7] + " AH"; return outputIslamicDate; }ويمكنك عرض التاريخ الهجري عن طريق كتابة: document.write(writeIslamicDate());فسيظهر التاريخ كالتالي:Jumuah, 28 Dhul Qa'ada 1436 AHلاحظ أن التاريخ يكتب باللغة الإنجليزية.وإذا احتجت فقط لعرض السنة الهجرية (مثلا لوضعها في footer ...)، يمكنك فعل ذلك بسهولة عن طريق إرفاق الجافا سكربت إلى موقعك:var GregorianYear = (new Date()).getFullYear(); var HijriYear = Math.round((GregorianYear - 622) * (33 / 32));أو يمكنك عرض السنة الميلادية بجانب السنة الهجرية عن طريق هذه الشيفرة بلغة جافاسكربت:<script type="text/javascript">document.write((new Date()).getFullYear())</script> م - <script type="text/javascript">var y = (new Date()).getFullYear();var h = Math.round((y - 622) * (33 / 32));document.write(h)</script> هـملاحظة: هنالك دائما فرصة خطأ بالتاريخ الهجرين بيوم أو يومين أو حتى ثلاثة.المصدر 1 2 1 اقتباس
0 محمد الحربي33 نشر 12 أبريل أرسل تقرير نشر 12 أبريل التاريخ مختلف طبع اليوم 25 شوال 1447 وفي تفويم ام القرى 24 شوال 1447 https://www.ihijri.com/date/ 1 اقتباس
0 محمد عاطف25 نشر 12 أبريل أرسل تقرير نشر 12 أبريل بتاريخ 3 ساعة قال محمد الحربي33: التاريخ مختلف طبع اليوم 25 شوال 1447 وفي تفويم ام القرى 24 شوال 1447 https://www.ihijri.com/date/ نعم بالفعل الحساب لن تكون دقيقة بنسبة 100٪ وذلك لأن الحسابات معقدة للتاريخ الهجري حيث يوجد عدد من القواعد والتعقيدات في حساب التاريخ الهجري التقليدي التي لم تتم مراعاتها في الكود المرفق . لذلك من الأفضل استخدام مكتبة خارجية إذا كنت تحتاج إلى دقة ومرونة أكثر في التعامل مع التاريخ الهجري. وتستطيع استخدام المكتبة المعروفة باسم "Hijri.js" وهي مكتبة JavaScript مفتوحة المصدر تتيح لك التعامل مع التواريخ الهجرية بتقويم أم القرى ويمكنك تنزيل المكتبة من مستودع GitHub الخاص بها . وهنا شرح استخدامها، وهي بسيطة: https://github.com/xsoh/moment-hijri وإليك كود بسيط لإستخدام المكتبة : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment-with-locales.min.js" integrity="sha512-4F1cxYdMiAW98oomSLaygEwmCnIP38pb4Kx70yQYqRwLVCs3DbRumfBq82T08g/4LJ/smbFGFpmeFlQgoDccgg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="moment-hijri.js"></script> <script> moment.locale('ar-SA');// 2- Set the global locale to `ar-SA` m = moment(); console.log(m.format('iD iMMMM iYYYY هـ الموافق YYYY/M/Dم')); console.log(m.format('iYYYY/iM/iDهـ الموافق YYYY/M/Dم')); </script> </body> </html> ولقد قمت بإرفاق الملف الخاص بالمكتبة أيضا. moment-hijri.js 1 اقتباس
0 محمد الحربي33 نشر 13 أبريل أرسل تقرير نشر 13 أبريل بتاريخ 15 ساعة قال محمد عاطف25: نعم بالفعل الحساب لن تكون دقيقة بنسبة 100٪ وذلك لأن الحسابات معقدة للتاريخ الهجري حيث يوجد عدد من القواعد والتعقيدات في حساب التاريخ الهجري التقليدي التي لم تتم مراعاتها في الكود المرفق . لذلك من الأفضل استخدام مكتبة خارجية إذا كنت تحتاج إلى دقة ومرونة أكثر في التعامل مع التاريخ الهجري. وتستطيع استخدام المكتبة المعروفة باسم "Hijri.js" وهي مكتبة JavaScript مفتوحة المصدر تتيح لك التعامل مع التواريخ الهجرية بتقويم أم القرى ويمكنك تنزيل المكتبة من مستودع GitHub الخاص بها . وهنا شرح استخدامها، وهي بسيطة: https://github.com/xsoh/moment-hijri وإليك كود بسيط لإستخدام المكتبة : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment-with-locales.min.js" integrity="sha512-4F1cxYdMiAW98oomSLaygEwmCnIP38pb4Kx70yQYqRwLVCs3DbRumfBq82T08g/4LJ/smbFGFpmeFlQgoDccgg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="moment-hijri.js"></script> <script> moment.locale('ar-SA');// 2- Set the global locale to `ar-SA` m = moment(); console.log(m.format('iD iMMMM iYYYY هـ الموافق YYYY/M/Dم')); console.log(m.format('iYYYY/iM/iDهـ الموافق YYYY/M/Dم')); </script> </body> </html> ولقد قمت بإرفاق الملف الخاص بالمكتبة أيضا. moment-hijri.js 32.21 kB · 1 تنزيل مشكور على الايضاح والمساعده بالمرفقات تقويم صحيح فيه عرض تاريخين تاريخ هجري من 1 الى نهاية الشهر وتاريخ ميلادي من 1 الى نهاية الشهر وقمت بتطويره واضافة وقت الصلاة له وغيرت طريقة عرض الشهر الى جدول هذا تعديلي http://forum.alshafeen.site/hcalarabic/prayer/monthCalendar.php hijri-date-2025-05-07.zip اقتباس
السؤال
محمد عبد العاطى
استخدم الدالة DateTime لحساب وعرض التوقيت في الموقع الخاص بي ، ارغب في فى تحويل طريقة عرض التواريخ بالتقويم الهجري في الموقع ، على سبيل المثال
هل يمكن تعديل الدالة DateTime بعرض التاريخ بالشكل الهجري ؟ ام احتاج الى استخدام دالة اخرى ؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.