Skip to content

Backendها و سریال‌سازی

یک DoranDate یک لحظهٔ واحد است. آن را به‌صورت جلالی به کاربران نشان دهید؛ و به‌صورت میلادی UTC به سرور بفرستید. یک لحظه، دو نما — به مدل ذهنی مراجعه کنید.

ارسال تاریخ به backend

ts
// ✅ toISOString() میلادی UTC است — مستقیماً امن برای POST
await api.post('/events', { date: d.toISOString() });

// ✅ هم‌زمان جلالی را به کاربر نشان دهید
<span>{d.format('YYYY/MM/DD')}</span>;

// ✅ JSON.stringify هم امن است — toJSON() میلادی UTC تولید می‌کند
const body = JSON.stringify({ date: d });

خواندن دوبارهٔ تاریخ (رفت‌وبرگشت)

ts
const iso = d.toISOString(); // "2026-06-01T08:00:00.000Z"
const restored = DoranDate.fromGregorian(new Date(iso));

restored.isSame(d); // true — بدون اتلاف رفت‌وبرگشت می‌کند

toISOString() در برابر toJalaliISO()

متدخروجیکاربرد
toISOString()2026-06-01T08:00:00.000Zbackendها، APIها، دیتابیس‌ها
toGregorianISO()مانند toISOString()نام مستعار صریح وقتی قصد مهم است
toJalaliISO()۱۴۰۵-۰۳-۱۱T۱۱:۳۰:۰۰+۰۳:۳۰فقط نمایش / لاگ

مقدار toJalaliISO() را به API نفرستید

toJalaliISO() یک نمایش جلالی برای انسان است (اغلب با ارقام فارسی و آفست محلی). این یک فرمت تبادل استاندارد نیست — یک backend که انتظار ISO-8601 دارد آن را رد می‌کند یا بدتر، خاموش اشتباه تجزیه می‌کند. همیشه با toISOString() سریال‌سازی کنید.

چرا این امن است

toISOString() و toJSON() هر دو به new Date(epochMs).toISOString() نیتیو واگذار می‌شوند، پس بایت‌هایی که می‌فرستید دقیقاً همان چیزی است که هر کتابخانهٔ تاریخ JS دیگری تولید می‌کند. تقویم جلالی صرفاً یک لایهٔ نمایش روی همان لحظهٔ زیرین است.

Released under the MIT License.