JavaScript Date Formats

ورودی تاریخ در جاوا اسکریپت

در جاوا اسکریپت 3 نوع ورودی برای تاریخ وجود دارد:

نوع مثال
ISO "2015-03-25" (The International Standard)
Short Date "03/25/2015"
Long Date "Mar 25 2015" or "25 Mar 2015"
استاندارد ISO یک استاندارد مشخص را در جاوا اسکریپت دنبال می‌کند ولی فرمت‌های دیگر خیلی خوب تعریف نشده‌اند و ممکن است که بر اساس مرورگر نتایج متفاوتی ارائه دهند.

خروجی تاریخ در جاوا اسکریپت

مستقل از ورودی تاریخ، جاوا اسکریپت به صورت پیش‌فرض تاریخ را به صورت یک رشته مانند زیر نمایش می‌دهد:

Wed Mar 25 2015 01:00:00 GMT+0100 (Central European Standard Time)

JavaScript ISO Dates

ISO 8601 استاندارد بین‌المللی برای ارائه تاریخ و زمان است. نحوه نوشتار آن (YYYY-MM-DD) فرمت ارجح در جاوا اسکریپت است.

const d = new Date("2015-03-25");

تاریخ محاسبه شده نسبت به منطقه زمانی شما خواهد بود. بسته به موقعیت زمانی شما، نتیجه کد بالا تاریخی بین 24 مارس و 25 مارس خواهد بود.

ISO Dates (Year and Month)

می‌توان تاریخ ISO را بدون تعیین روز آن نوشت.

const d = new Date("2015-03");

بسته به موقعیت زمانی، نتیجه بالا تاریخی بین 28 فوریه و 1 مارس خواهد بود.

ISO Dates (Only Year)

می‌توان تاریخ ISO را بدون تعیین روز و ماه آن نوشت.

const d = new Date("2015");

بسته به موقعیت زمانی نتیجه کد بالا تاریخی بین 31 دسامبر 2014 و 1 ژانویه 2015 خواهد بود.

ISO Dates (Date-Time)

می‌توان تاریخ ISO را با اضافه کردن ساعت، دقیقه و ثانیه نوشت (YYYY-MM-DDTHH:MM:SSZ).

const d = new Date("2015-03-25T12:00:00Z");

تاریخ و زمان با استفاده از حرف T بزرگ از هم جدا می‌شوند.

زمان UTC با استفاده از حرف بزرگ Z مشخص می‌شود.

اگر می‌خواهید که زمان را نسبت به زمان UTC تغییر دهید، حرف Z را حذف کرده و HH:MM+ یا HH:MM- را اضافه کنید.

const d = new Date("2015-03-25T12:00:00-06:30");
حذف کردن حروف T و Z در مروگرهای مختلف ممکن است که نتایج متفاوتی را پدید آورد..

JavaScript Short Dates

تاریخ کوتاه به صورت "MM/DD/YYYY" نوشته می‌شود.

const d = new Date("03/25/2015");

هشدار: در بعضی از مرورگرها، ماه و روز بدون صفر ابتدای آن ممکن است که خطا ایجاد کند:

const d = new Date("2015-3-25");

رفتار "YYYY/MM/DD" مشخص نیست. بعضی مرورگرها سعی می‌کنند که فرمت را حدس بزنند و بعضی دیگر مقدار NaN را برمی‌گردانند.

const d = new Date("2015/03/25");

گفته بالا برای فرمت "DD-MM-YYYY" نیز صادق است.

const d = new Date("25-03-2015");

JavaScript Long Dates

فرمت تاریخ بلند اکثراً به صورت "MMM DD YYYY" نوشته می‌شود.

const d = new Date("Mar 25 2015");

ماه و روز می‌توانند جایشان عوض شود:

const d = new Date("25 Mar 2015");

همچنین ماه را می‌توان به صورت کامل (January) یا مخفف (Jan) نوشت.

const d = new Date("January 25 2015");

یا:

const d = new Date("Jan 25 2015");

کاما نادیده گرفته می‌شود و اسم‌ها به بزرگ و کوچک بودن حروف حساس نیستند.

const d = new Date("JANUARY, 25, 2015");

Date Input - Parsing Dates

اگر تاریخ را به صورت رشته معتبر دارید، می‌توانید از Date.parse() برای تبدیل آن به میلی ثانیه استفاده کنید. این تابع شیء تاریخ شما را نسبت به 1 ژانویه 1970 محاسبه و زمان را برحسب میلی ثانیه برمی‌گرداند.

let msec = Date.parse("March 21, 2012");