Skip to content

Date() constructor

سازنده Date() اشیاء Date را ایجاد می کند. هنگامی که به عنوان یک تابع فراخوانی می شود، یک رشته نشان دهنده زمان فعلی را برمی گرداند.

امتحان کنید

Syntax

Date();

new Date();
new Date(value);
new Date(dateString);
new Date(dateObject);

new Date(year, monthIndex);
new Date(year, monthIndex, day);
new Date(year, monthIndex, day, hours);
new Date(year, monthIndex, day, hours, minutes);
new Date(year, monthIndex, day, hours, minutes, seconds);
new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds);

[!NOTE] توجه: new Date() را می توان با یا بدون ، اما با افکت های مختلف فراخوانی کرد. به مقدار بازگشتی مراجعه کنید.

پارامترها

پنج شکل اساسی برای سازنده Date() وجود دارد:

بدون پارامتر

هنگامی که هیچ پارامتری ارائه نمی شود، شی Date که به تازگی ایجاد شده است، تاریخ و زمان فعلی را از زمان نمونه سازی نشان می دهد. مهر زمانی تاریخ برگشتی با عددی است که توسط Date.now() برگردانده شده است.

مقدار زمانی یا شماره مُهر زمانی

ارزش یک مقدار صحیح نشان‌دهنده مُهر زمانی (تعداد میلی‌ثانیه از نیمه‌شب در آغاز 1 ژانویه 1970، UTC - معروف به دوره).

رشته تاریخ

dateString یک مقدار رشته ای که تاریخ را نشان می دهد، با استفاده از همان الگوریتم پیاده سازی شده توسط Date.parse() تجزیه و تفسیر می شود. برای هشدارها در مورد استفاده از قالب‌های مختلف، قالب رشته زمان تاریخ را ببینید.

شیء تاریخ

dateObject یک شی Date موجود. این به طور موثر یک کپی از شی Date موجود با تاریخ و زمان مشابه ایجاد می کند. این معادل Date(dateObject.valueOf() جدید است، به جز اینکه متد valueOf() فراخوانی نشده است.

هنگامی که یک پارامتر به سازنده Date() ارسال می شود، نمونه های Date به طور ویژه درمان می شوند. تمام مقادیر دیگر به مقادیر اولیه تبدیل می شوند. اگر نتیجه یک رشته باشد، به عنوان یک رشته تاریخ تجزیه می شود. در غیر این صورت، اولیه به دست آمده بیشتر به یک عدد وادار می شود و به عنوان مهر زمانی در نظر گرفته می شود.

مقادیر مولفه تاریخ و زمان فردی

با توجه به حداقل یک سال و ماه، این فرم از Date() یک شیء Date را برمی گرداند که مقادیر مؤلفه آن (سال، ماه، روز، ساعت، دقیقه، ثانیه و میلی ثانیه) همه از پارامترهای زیر می آیند. به هر فیلد از دست رفته کمترین مقدار ممکن داده می شود (1 برای روز و 0 برای هر جزء دیگر). مقادیر پارامتر همه بر اساس منطقه زمانی محلی، به جای UTC ارزیابی می شوند. Date.UTC() پارامترهای مشابه را می پذیرد اما مولفه ها را به صورت UTC تفسیر می کند و یک مهر زمانی برمی گرداند.

اگر هر پارامتری از مرزهای تعریف شده خود سرریز شود، “انتقال می یابد”. به عنوان مثال، اگر یک monthIndex بزرگتر از 11 تصویب شود، آن ماه ها باعث افزایش سال می شوند. اگر یک دقیقه بیشتر از 59 بگذرد، ساعت ها بر این اساس افزایش می یابد، و غیره. بنابراین، تاریخ جدید (1990، 12، 1) به 1 ژانویه 1991 باز می گردد. تاریخ جدید (2020، 5، 19، 25، 65) ساعت 2:05 بامداد باز خواهد گشت. 20 ژوئن 2020.

به طور مشابه، اگر هر پارامتری زیر جریان باشد، از موقعیت های بالاتر «قرض» می گیرد. به عنوان مثال، تاریخ جدید (2020، 5، 0) در 31 مه 2020 باز خواهد گشت.

سال مقدار صحیح نشان دهنده سال. مقادیر از 0 تا 99 به سال های 1900 تا 1999 نشان داده می شوند. همه مقادیر دیگر سال واقعی هستند. مثال را ببینید.

ماه ایندکس مقدار صحیح نشان دهنده ماه، از 0 برای ژانویه تا 11 برای دسامبر.

روز اختیاری مقدار صحیح نشان دهنده روز ماه. پیش فرض 1 است.

ساعت اختیاری مقدار صحیح بین 0 تا 23 نشان دهنده ساعت روز است. پیش فرض 0 است.

دقیقه اختیاری مقدار صحیح که بخش دقیقه یک زمان را نشان می دهد. پیش فرض 0 است.

ثانیه اختیاری مقدار صحیح نشان دهنده بخش دوم یک زمان. پیش فرض 0 است.

میلی ثانیه اختیاری مقدار صحیح که بخش میلی ثانیه ای یک زمان را نشان می دهد. پیش فرض 0 است.

ارزش بازگشتی

فراخوانی جدید Date() (سازنده Date()) یک شی Date را برمی گرداند. اگر با یک رشته تاریخ نامعتبر فراخوانی شود، یا اگر تاریخی که باید ساخته شود دارای مهر زمانی کمتر از -8,640,000,000,000,000 یا بیشتر از 8,640,000,000,000,000 میلی ثانیه باشد، تاریخ نامعتبر را برمی گرداند (یک مقدار تاریخ نامعتبر و یک متد Strate(invalid) و یک شیء Date(invalid) به آن بازگشت می کند. () متد NaN را برمی گرداند.

فراخوانی تابع Date() (بدون کلمه کلیدی جدید) نمایش رشته ای از تاریخ و زمان فعلی را دقیقاً همانطور که Date().toString() جدید انجام می دهد، بازمی گرداند. هر آرگومان داده شده در فراخوانی تابع Date() (بدون کلمه کلیدی جدید) نادیده گرفته می شود. صرف نظر از اینکه با یک رشته تاریخ نامعتبر فراخوانی شود - یا حتی با هر شی دلخواه یا دیگر اولیه به عنوان آرگومان فراخوانی شود - همیشه یک نمایش رشته ای از تاریخ و زمان فعلی را برمی گرداند.

Examples

چندین متد برای ایجاد یک شی Date مثال‌های زیر چندین راه برای ایجاد تاریخ جاوا اسکریپت را نشان می‌دهند:

const today = new Date();
const birthday = new Date("17 دسامبر 1995 03:24:00"); // DSCOURAGED: ممکن است در همه زمان‌های اجرا کار نکند
const birthday = new Date("1995-12-17T03:24:00"); // این استاندارد است و قابل اعتماد کار خواهد کرد
const birthday = new Date(1995, 11, 17); // ماه با 0 نمایه شده است
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // مهر زمانی گذراندن

ارسال یک مقدار غیر تاریخ، غیر رشته ای و غیر عددی اگر سازنده Date() با یک پارامتر فراخوانی شود که نمونه Date نیست، به یک primitive اجباری می شود و سپس بررسی می شود که آیا رشته است یا خیر. به عنوان مثال، new Date(undefined) با new Date():

console.log(تاریخ جدید (تعریف نشده)); // تاریخ نامعتبر است

این به این دلیل است که undefined از قبل یک رشته اولیه است اما یک رشته نیست، بنابراین به یک عدد اجباری می‌شود که NaN است و بنابراین یک مهر زمانی معتبر نیست. از طرف دیگر، null به 0 اجباری می شود.

console.log(تاریخ جدید(تهی)); // 1970-01-01T00:00:00.000Z

آرایه ها از طریق Array.prototype.toString()، که عناصر را با کاما به هم می پیوندد، به یک رشته وادار می شوند. با این حال، رشته به دست آمده برای هر آرایه ای با بیش از یک عنصر، یک رشته تاریخ معتبر ISO 8601 نیست، بنابراین رفتار تجزیه آن به صورت پیاده سازی تعریف می شود. آرایه ها را به سازنده Date() منتقل نکنید.

console.log(تاریخ جدید(["19-06-2020", "17:13"]));
// 2020-06-19T17:13:00.000Z در Chrome، زیرا "2020-06-19,17:13" را می شناسد
// "تاریخ نامعتبر" در فایرفاکس