time-ar

أول مكتبة npm/cdn عربية مفتوحة المصدر بالشراكة مع الباشمهندس @mahmoudplay لعرض كم مضى & تبقى من الزمن مع التركيز على سلامة اللغة والنحو، مع الامكانية الكاملة فالتخصيص والتعديل.
مثل:

تدعم المكتبة ضبط المنطقة الزمنية (Timezone) الافتراضية، مع امكانية التخصيص.


التثبيت

باستخدام npm:

bash
npm i time-ar

باستخدام pnpm:

bash
pnpm add time-ar

باستخدام yarn:

bash
yarn add time-ar

الاستخدام السريع

مثال (JavaScript)

javascript
import timeAr from "time-ar";
const time = timeAr();
const text = time.getTimeAr("13:37", time.format.shortTime);
console.log(text)

مثال (TypeScript / ESM)

typescript
import timeAr from "time-ar";

const t = timeAr();
const out = t.getTimeAr("21-03-2026 14:30:15", t.format.fullDateTime);
console.log(out); // "منذ ..."/"بعد ..."

واجهة المكتبة (API)

عند استدعاء timeAr() ستحصل على كائن يحتوي على:


الدالة getTimeAr

التوقيع

typescript
getTimeAr(time: Date | string, timeFormat: string): string

ماذا تُرجع؟

ما هو timeFormat؟

هو تنسيق parsing الذي سيتم الاعتماد عليه لفهم قيمة time عندما تكون نصًا (string).


التنسيقات الجاهزة format

هذه هي القيم الجاهزة المتاحة داخل t.format:

الاسم القيمة مثال نصي
shortDateDD-MM-YYYY21-03-2026
longDateMMMM D, YYYYMarch 21, 2026
shortTimeHH:mm14:30
longTimeHH:mm:ss14:30:15
fullDateTimeDD-MM-YYYY HH:mm:ss21-03-2026 14:30:15
monthDayMMMM DMarch 21
monthYearMMMM YYYYMarch 2026
dayMonthYearDD/MM/YYYY21/03/2026
iso8601YYYY-MM-DDTHH:mm:ssZ[Z]2026-03-21T14:30:15Z
time12hhh:mm A02:30 PM
time12hSecondshh:mm:ss A02:30:15 PM

إدخال الوقت كـ string (أمثلة عملية)

1) تاريخ كامل

typescript
import timeAr from "time-ar";

const t = timeAr();
console.log(t.getTimeAr("21-03-2026 14:30:15", t.format.fullDateTime));

2) تاريخ فقط

typescript
import timeAr from "time-ar";

const t = timeAr();
console.log(t.getTimeAr("21-03-2026", t.format.shortDate));

3) وقت فقط (HH:mm أو HH:mm:ss)

إذا مررت وقتًا فقط مثل "14:30" أو "14:30:15" فالمكتبة تعتبره وقت اليوم الحالي في التايمزون الحالي ثم تحسب الفرق مع الآن:

typescript
import timeAr from "time-ar";

const t = timeAr();
console.log(t.getTimeAr("14:30", t.format.shortTime));
console.log(t.getTimeAr("14:30:15", t.format.longTime));

ضبط المنطقة الزمنية (Timezone)

افتراضيًا، يتم اختيار التايمزون من نظام التشغيل (أو UTC إذا لم يتوفر). يمكنك تغييره عبر setTimezone:

typescript
import timeAr from "time-ar";

const t = timeAr();
t.setTimezone("Africa/Cairo");
// t.setTimezone("Africa/Algiers");
// t.setTimezone("Africa/....");

console.log(t.getTimeAr("21-03-2026 14:30:15", t.format.fullDateTime));

أخطاء متوقعة


ملاحظات ودقة الإخراج


أسئلة شائعة

هل المكتبة تُرجع “تنسيق تاريخ” (مثل 21/03/2026)؟

لا. وظيفتها الأساسية الوقت النسبي (منذ/بعد/الآن). أما القيم داخل format فهي قوالب parsing جاهزة لتسهيل إدخال التاريخ/الوقت كسلاسل نصية.

هل أستطيع استخدام تنسيق غير الموجود في format؟

نعم. getTimeAr يقبل أي نص تنسيق يدعمه dayjs (مع customParseFormat).

typescript
import timeAr from "time-ar";

const t = timeAr();
console.log(t.getTimeAr("2026|03|21 14-30-15", "YYYY|MM|DD HH-mm-ss"));