مرجع سريع

ورقة غش مكتبة Moment.js

دليل مرجعي شامل لمكتبة Moment.js: تحليل التواريخ، رموز التنسيق، العمليات الحسابية، التنسيقات المحلية والبدائل الحديثة.

· تاريخ النشر

Moment.js هي مكتبة جافا سكريبت تاريخية شهيرة لتحليل التواريخ والتحقق منها وتعديلها وتنسيقها.

تحليل وإنشاء التواريخ

// تحليل الطابع الزمني الحالي
const now = moment();

// تحليل تاريخ مع تحديد التنسيق الصريح
const m = moment('2026-10-25', 'YYYY-MM-DD');

// تحليل طابع وقت Unix (بالثواني أو بالمللي ثانية)
moment.unix(1730000000); // من الثواني
moment(1730000000000);   // من المللي ثانية

// التحقق من صحة التاريخ
m.isValid(); // -> true

رموز التنسيق والتخصيص

m.format();                  // "2026-10-25T00:00:00+08:00" (// تنسيق ISO 8601 القياسي)
m.format('dddd');            // "Sunday"
m.format('MMM Do YY');       // "Oct 25th 26"
m.fromNow();                 // "// حساب الوقت النسبي (مثلا: منذ 3 ساعات)"
m.calendar();                // "// تنسيق تقويمي نسبي"

جدول رموز التاريخ

الرمز نطاق المخرجات الوصف
YYYY 2026 4-digit year
YY 26 2-digit year
MM 01..12 2-digit month
MMM Jan..Dec Short month name
MMMM January..December Full month name
DD 01..31 2-digit day of month
Do 1st..31st Day of month with ordinal
d 0..6 Day of week (0 is Sunday)
ddd Sun..Sat Short day of week
dddd Sunday..Saturday Full day of week
Q 1..4 Quarter of the year

جدول رموز الوقت

الرمز نطاق المخرجات الوصف
HH 00..23 24-hour hour (2-digit)
H 0..23 24-hour hour (1-digit)
hh 01..12 12-hour hour (2-digit)
mm 00..59 Minute (2-digit)
ss 00..59 Second (2-digit)
SSS 000..999 Milliseconds (3-digit)
A AM / PM Uppercase meridiem
a am / pm Lowercase meridiem
Z +08:00 Difference from UTC

تعديل التواريخ والعمليات الحسابية

تتميز كائنات Moment بأنها قابلة للتعديل (mutable)، حيث تؤثر العمليات على الكائن مباشرة:

// الإضافة والطرح
moment().add(7, 'days');
moment().subtract(1, 'month');

// التعيين إلى حدود وحدة زمنية معينة
moment().startOf('day');  // بداية اليوم 00:00:00.000
moment().endOf('month');  // نهاية الشهر 23:59:59.999

// الاستنساخ لمنع تعديل الكائن الأصلي بالخطأ
const original = moment();
const nextWeek = original.clone().add(7, 'days');

قوالب التنسيقات المحلية الجاهزة

التنسيق مثال على الناتج
LT 8:30 PM
LTS 8:30:25 PM
L 10/25/2026
LL October 25, 2026
LLL October 25, 2026 8:30 PM
LLLL Sunday, October 25, 2026 8:30 PM

البدائل الحديثة الموصى بها

دخلت مكتبة Moment.js مرحلة الصيانة فقط، ويوصى بالبدائل الحديثة التالية:

  • date-fns: دوال معيارية نقية غير قابلة للتعديل وتدعم tree-shaking.
  • Day.js: بديل خفيف جدا بحجم 2 كيلوبايت بنفس واجهة برمجة تطبيقات Moment.
  • Luxon: مكتبة حديثة من مطوري Moment مبنية على واجهة Intl الأصلية.
  • Native Intl.DateTimeFormat: مدمجة أصلا في المتصفحات وبيئة Node.js دون أي مكتبات إضافية.

مراجع ذات صلة

موضوعات ذات صلة