ملعب date-fns
اختبر وجرب وظائف مكتبة date-fns في ملعب JavaScript مباشر مع مخرجات فورية
الإدخال
الإخراج
ملف القراءة
ما هو date-fns؟
date-fns هي مكتبة حديثة لتعامل مع التواريخ في JavaScript توفر أدوات شاملة، متسقة، وموثوقة للعمل مع التواريخ. على عكس كائن Date الأصلي في JavaScript الذي يحتوي على العديد من العيوب وعدم التناسق، تقدم date-fns نهجًا معياريًا وظيفيًا لمعالجة التواريخ. المكتبة قابلة للتقليل (tree‑shakable)، مما يعني أنك تُدرج فقط الدوال التي تستخدمها فعليًا، مما يحافظ على حجم الحزمة بأقل قدر ممكن. تدعم المكتبة أكثر من 200 دالة تغطي كل شيء من التنسيق والتحليل إلى المقارنة، والتعديل، وتوطين التواريخ.
لماذا نستخدم بيئة date-fns Playground؟
التعامل مع التواريخ في JavaScript قد يكون معقدًا—المناطق الزمنية، أنماط التنسيق، والعمليات الحسابية على التواريخ غالبًا ما تؤدي إلى نتائج غير متوقعة. توفر بيئة Playground لك إمكانية تجربة دوال date-fns في الوقت الفعلي، رؤية المخرجات فورًا، وتعلم الـ API دون الحاجة لإعداد مشروع كامل. إنها مثالية لاختبار سلاسل التنسيق، تصحيح حسابات التواريخ، أو إنشاء نماذج أولية منطقية للتواريخ بسرعة قبل دمجها في تطبيقك.
وصف الأداة
date-fns Playground هي بيئة ترميز تفاعلية تتيح لك كتابة وتنفيذ شيفرة JavaScript مع تحميل مكتبة date-fns بالكامل مسبقًا. تتوفر جميع دوال المكتبة (أكثر من 200) عبر كائن dateFns، مما يمنحك وصولًا مباشرًا إلى كل دالة. يتم تشغيل الشيفرة تلقائيًا أثناء الكتابة (مع تقليل التكرار)، وتظهر جميع مخرجات console.log، console.warn، و console.error في الطرفية المدمجة أسفل المحرر. هذا يجعلها مثالية لتعلم date-fns، اختبار عمليات التاريخ، وتجربة خيارات التنسيق المختلفة.
أمثلة
تنسيق التاريخ الحالي:
const now = new Date();
console.log(dateFns.format(now, "MMMM do, yyyy"));
// النتيجة: ديسمبر 30th, 2025حساب عدد الأيام بين تاريخين:
const start = new Date(2025, 0, 1);
const end = new Date(2025, 11, 31);
console.log(dateFns.differenceInDays(end, start) + " أيام");
// النتيجة: 364 أيامإضافة وقت إلى تاريخ:
const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("الأسبوع القادم:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("الشهر القادم:", dateFns.format(nextMonth, "yyyy-MM-dd"));التحقق ما إذا كان التاريخ في الماضي أو المستقبل:
const date = new Date(2024, 5, 15);
console.log("هل هو في الماضي؟", dateFns.isPast(date));
console.log("هل هو في المستقبل؟", dateFns.isFuture(date));تحليل سلسلة تاريخ:
const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// النتيجة: الخميس، ديسمبر 25th, 2025المميزات
- مكتبة date-fns كاملة: وصول إلى جميع دوال date-fns (200+) عبر كائن
dateFns - تنفيذ شيفرة مباشر: تشغيل الشيفرة تلقائيًا أثناء الكتابة مع تقليل التكرار الذكي
- طرفية مدمجة: عرض مخرجات الـ console فورًا دون الحاجة لأدوات مطور المتصفح
- تظليل بناء جملة: تظليل بناء جملة JavaScript لتحسين قراءة الشيفرة
- معالجة الأخطاء: عرض أخطاء وقت التشغيل بوضوح في مخرجات الطرفية
حالات الاستخدام
- تعلم date-fns: تجربة الدوال المختلفة ورؤية النتائج فورًا دون إعداد مشروع
- اختبار تنسيقات التاريخ: تجربة سلاسل تنسيق مختلفة للعثور على النمط المطلوب بالضبط
- نمذجة حسابات التاريخ: اختبار عمليات حسابية معقدة مثل إضافة أيام عمل، إيجاد الفواصل، أو مقارنة التواريخ
- تصحيح منطق التاريخ: عزل واختبار مقاطع الشيفرة المتعلقة بالتاريخ من مشاريعك
- تحويلات تاريخ سريعة: تحويل بين صيغ التاريخ أو حساب الفروقات الزمنية في الحال
دوال date-fns الشائعة
| الدالة | الوصف | المثال |
|---|---|---|
format |
تنسيق تاريخ إلى سلسلة | dateFns.format(date, "yyyy-MM-dd") |
parse |
تحليل سلسلة إلى تاريخ | dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date()) |
addDays |
إضافة أيام إلى تاريخ | dateFns.addDays(date, 7) |
subMonths |
طرح شهور من تاريخ | dateFns.subMonths(date, 3) |
differenceInDays |
الحصول على عدد الأيام بين تاريخين | dateFns.differenceInDays(dateA, dateB) |
isAfter |
التحقق ما إذا كان التاريخ بعد تاريخ آخر | dateFns.isAfter(dateA, dateB) |
isBefore |
التحقق ما إذا كان التاريخ قبل تاريخ آخر | dateFns.isBefore(dateA, dateB) |
startOfMonth |
الحصول على أول يوم في الشهر | dateFns.startOfMonth(date) |
endOfYear |
الحصول على آخر لحظة في السنة | dateFns.endOfYear(date) |
formatDistance |
إظهار الفرق الزمني بصيغة قابلة للقراءة البشرية | dateFns.formatDistance(dateA, dateB) |
مرجع رموز التنسيق
| الرمز | الوصف | المثال |
|---|---|---|
yyyy |
السنة بأربعة أرقام | 2025 |
MM |
الشهر برقمين | 01‑12 |
MMMM |
اسم الشهر الكامل | January |
dd |
اليوم برقمين | 01‑31 |
do |
اليوم مع الترتيب | 1st, 2nd, 3rd |
EEEE |
اسم اليوم الكامل | Monday |
EEE |
اسم اليوم المختصر | Mon |
HH |
الساعة بنظام 24 ساعة | 00‑23 |
hh |
الساعة بنظام 12 ساعة | 01‑12 |
mm |
الدقائق | 00‑59 |
ss |
الثواني | 00‑59 |
a |
ص/م (AM/PM) | AM, PM |