ورودی تاریخ در JavaScript
با کمک 4 متد زیر می توانیم تاریخ را با فرمت های مختلف نمایش دهیم.
now now.toString() |
|
now.toDateString() | |
now.toUTCString() | |
now.toISOString() |
با توجه به جدول بالا:
- متد toString تاریخ را به صورت یک رشته کامل شامل تاریخ بلند و زمان و موقعیت زمانی مرورگر نمایش می دهد.
- متد toDateString تاریخ را به صورت یک رشته شامل تاریخ بلند، بدون زمان و بدون موقعیت زمانی نمایش می دهد.
- متد toUTCString تاریخ را به صورت یک رشته شامل تاریخ بلند، زمان و بر اساس موقعیت زمانی GMT نمایش می دهد.
- متد toISOString تاریخ را به صورت یک رشته شامل تاریخ کوتاه، زمان و موقعیت زمانی GMT نمایش می دهد.
نکته: معمولا از تاریخ iso یا مهر زمانی برای ذخیره تاریخ در پایگاه داده استفاده می شود.
نکته: همانطور که در جدول بالا دیدید زمان در هر 3 حالت به صورت مشابه نمایش داده می شود و تفاوت در نمایش تاریخ است. در ادامه به بررسی تفاوت تاریخ می پردازیم.
در کل سه نوع فرمت تاریخ در جاوا اسکریپت وجود دارد.
نوع | مثال |
تاریخ ISO با عدد و - (استاندارد بین المللی) | 2024-12-02 |
تاریخ کوتاه (short date) با عدد و / | 2024/12/02 |
تاریخ بلند (long date) بدون عدد | "Dec 022024" یا "02 Dec 2024" |
نکته: فرمت ISO، یک استاندارد سختگیرانه را در جاوا اسکریپت دنبال می کند.
نکته: فرمت های دیگر چندان خوب تعریف نشده اند و ممکن است مختص مرورگر باشند.
تاریخ ISO در JS
ISO 8601، استاندارد بین المللی برای نمایش تاریخ و زمان است.
نگارش ISO 8601 به صورت YYYY-MM-DD نوشته می شود.
const d = new Date("2024-12-02");
نکته: تاریخ محاسبه شده، نسبت به منطقه زمانی مرورگر خواهد بود.
نکته: بسته به منطقه زمانی شما، نتیجه بالا بین 1 دسامبر تا 2 دسامبر متفاوت خواهد بود.
تاریخ ISO سال و ماه در JS
تاریخ های ISO می توانند بدون مشخص کردن روز نوشته شوند (YYYY-MM):
const d = new Date("2024-12");
نکته: بسته به منطقه زمانی شما، نتیجه بالا بین 28 نوامبر تا 1 دسابمر متفاوت خواهد بود.
تاریخ ISO سال در JS
تاریخهای ISO می توانند بدون ماه و روز (YYYY) نوشته شوند:
const d = new Date("2024");
نکته: مناطق زمانی نتیجه بالا، بین 31 دسامبر 2023 و 01 ژانویه 2024 متفاوت خواهد بود.
تاریخ ISO به همراه زمان در JS
تاریخ ISO می تواند با ساعت، دقیقه و ثانیه نوشته شود (YYYY-MM-DDTHH:MM:SSZ):
const d = new Date("2024-12-04T08:30:00Z");
در استاندارد ISO:
- تاریخ و زمان با یک T بزرگ جدا می شود.
- حرف Z بزرگ بعد از زمان نشان دهنده موقعیت زمانی UTC است.
برای تغییر موقعیت زمانی می توانیم به جای حرف Z با مقدار +HH:MM یا -HH:MM، زمان را نسبت به UTC تغییر دهیم.
const d = new Date("2024-12-04T06:30:00+03:30");
نکته: UTC (زمان هماهنگ جهانی) همان GMT (زمان گرینویچ) است.
نکته: زمان ایران برابر زمان گرینویچ + 03:30 است. (GMT+03:30)
نکته: حذف T یا Z در رشته تاریخ-زمان می تواند نتایج متفاوتی در مرورگرهای مختلف به همراه داشته باشد.
نکته: هنگام دریافت تاریخ، بدون تعیین منطقه زمانی، نتیجه با منطقه زمانی مرورگر هماهنگ می شود.
هشدار!
const d = new Date("2024-12-4");
const d = new Date("2024/12/04");
تبدیل رشته تاریخ به مهر زمانی
با متد ()Date.parse می توانیم رشته تاریخ را به مهر زمانی تبدیل کنیم.
const timestamp = Date.parse("Decamber 04, 2024");
سپس می توانیم از تعداد میلی ثانیه برای تبدیل آن به یک شیء تاریخ استفاده کنیم:
const timestamp = Date.parse("Decamber 04, 2024");
const d = new Date(timestamp);