یکی دیگر از آبجکت های مورد استفاده در جاوااسکریپت استفاده از تاریخ یا date است.
تاریخ امکان کار کردن با (سال، ماه، روز، ساعت، دقیقه، ثانیه) را به شما می دهد.
برای استفاده از آبجکت تاریخ باید از تابع Date استفاده کنیم.برای ساخت یک شی از روی کلاس یا تابع تاریخ می بایست واژه new را قبل تابع قرار دهیم.
نحوه نوشتن:
1 |
new Date(); |
این شی تاریخ و زمان فعلی را براساس تنظیمات زمان مرورگر یا timezone بصورت کامل و در قالب رشته برگشت میدهد.
نمایش تاریخ بازگشتی بصورت:
- نام روز هفته (۳ کلمه ای) شامل (Sat-Sun-Mon-Tue-Wen-Thu-Fri)
- نام ماه (۳ کلمه ای) شامل (Jan-Feb-Mar-Apr-May-Jun-Jul-Aug-Sep-Oct-Nov-Dec)
- روز ماه (عدد) شامل (۰۱-۳۱)
- سال (عدد در ۴ رقم) شامل (۱۹۹۱-۲۰۲۲)
- ساعت با فرمت ۲۴ شامل (۰۰-۲۳)
- دقیقه شامل (۰۰-۵۹)
- ثانیه شامل (۰۰-۵۹)
- نوع قالب استاندارد زمان شامل (GMT یا UTC)
- مثبت،منفی مقدار زمان اختلاف زمان منطقه با ساعت استاندارد جهانی
- نام منطقه زمانی
مقدار بازگشت:
1 |
//Wed Aug 17 2022 21:16:13 GMT+0430 (Iran Daylight Time) |
برای ساخت شی تاریخ ۴ حالت وجود دارد:
شی تاریخ را همانطور که وجود دارد بدون ارسال پارامتر ایجاد کنید.
مثال:
1 |
new Date(); |
ساخت شی تاریخ بهمراه چند پارامتر
شامل: سال،ماه،روز، ساعت،دقیقه،ثانیه و میلی ثانیه (۷ پارامتر) وارد کنید.
مثال:
1 |
new Date(year, month, day, hours, minutes, seconds, milliseconds); |
ساخت شی تاریخ تنها با یک پارامتر
شامل: میلی ثانیه
مثال:
1 |
new Date(milliseconds); |
ساخت شی تاریخ با رشته متنی
مثال:
1 |
new Date(date string); |
درباره new Date()
همانطور که گفته شد این دستور یک شی ایجاد میکند که زمان فعلی را بطور کامل در قالب رشته برگشت میدهد.
مثال:
1 2 |
const d = new Date(); //Wed Aug 17 2022 21:16:13 GMT+0430 (Iran Daylight Time) |
توجه: مقداری که این شی در هر بار لود صفحه برگشت میدهد زمان فعلی است و مانند ساعت عقربه ای در لحظه بروز نمیشود.
ساخت شی تاریخ با ۷ پارامتر
این نوع شی تاریخ را با ۷ پارامتر و براساس زمانی که ما تعیین میکنیم میسازد.
این ۷ پارامتر عبارتند از: سال،ماه،روز، ساعت،دقیقه،ثانیه و میلی ثانیه
مثال:
1 2 |
const d = new Date(2018, 11, 24, 10, 33, 30, 0); //Mon Dec 24 2018 10:33:30 GMT+0330 (Iran Standard Time) |
نحوه شمارش ماه بصورت عدد در جاوااسکریپت
در زبان جاوااسکریپت برخلاف تصور ماه های سال در قالب عدد از ۰ که برابر با January شروع شده و تا ماه ۱۱ که برابر با December تعریف میشود.
در صورتی که عدد ماه را بالاتر قرار دهید خطایی رخ نمیدهد کاری که جاوااسکریپت میکند این است که نهایتا به سال بعد میرود.
مثال:
1 |
const d = new Date(2018, 15, 24, 10, 33, 30); |
زمان بالا تبدیل به:
1 |
const d = new Date(2019, 3, 24, 10, 33, 30); |
وارد کردن پارامتر روز ماه بیشتر از عدد ۳۰ زمان را به ماه بعد انتقال میدهد.
مثال:
1 |
const d = new Date(2018, 5, 35, 10, 33, 30); |
زمان بالا تبدیل به:
1 |
const d = new Date(2018, 6, 5, 10, 33, 30); |
برای وارد کردن پارامترهای زمان از حالت های ۲,۳,۴,۶ استفاده کنید. تعداد پارامترهای خود را از سمت راست کم کنید.
تاریخ ۶ پارامتری
شامل: سال،ماه،روز،ساعت،دقیقه،ثانیه
مثال:
1 2 |
const d = new Date(2018, 11, 24, 10, 33, 30); //Mon Dec 24 2018 10:33:30 GMT+0330 (Iran Standard Time) |
تاریخ ۵ پارامتری
شامل: سال،ماه،روز،ساعت،دقیقه
مثال:
1 2 |
const d = new Date(2018, 11, 24, 10, 33); //Mon Dec 24 2018 10:33:00 GMT+0330 (Iran Standard Time) |
تاریخ ۴ پارامتری
شامل: سال،ماه،روز،ساعت
مثال:
1 2 |
const d = new Date(2018, 11, 24, 10); //Mon Dec 24 2018 10:00:00 GMT+0330 (Iran Standard Time) |
تاریخ ۳ پارامتری
شامل: سال،ماه،روز
مثال:
1 2 |
const d = new Date(2018, 11, 24); //Mon Dec 24 2018 00:00:00 GMT+0330 (Iran Standard Time) |
تاریخ ۲ پارامتری
شامل: سال،ماه
مثال:
1 2 |
const d = new Date(2018, 11); //Sat Dec 01 2018 00:00:00 GMT+0330 (Iran Standard Time) |
توجه: نمی توانید پارامتر ماه را حذف کنید.در صورت حذف ماه و وارد کردن تنها سال از روش وارد کردن میلی ثانیه استفاده کرده ایم.
مثال:
1 |
const d = new Date(2018); |
دو یا تک رقمی نوشتن سال
این امکان وجود دارد که سال ۴ رقمی خود را به صورت دو یا تک رقمی بنویسید.در این حالت سال شما براساس قرن ۱۹۰۰ نمایش داده می شود.
مثال:
1 2 |
const d = new Date(99, 11, 24); //Fri Dec 24 1999 00:00:00 GMT+0330 (Iran Standard Time) |
1 2 |
const d = new Date(9, 11, 24); //Fri Dec 24 1909 00:00:00 GMT+0325 (Iran Standard Time) |
ساخت شی تاریخ با رشته متنی
در این حالت می توانیم آبجکت تاریخ خود را براساس یک متن رشته ای ایجاد کنیم.
نحوه نوشتن:
1 |
new Date(dateString) |
مثال:
1 2 |
const d = new Date("October 13, 2014 11:13:00"); //Mon Oct 13 2014 11:13:00 GMT+0330 (Iran Standard Time) |
ساخت شی تاریخ با یک پارامتر میلی ثانیه
در صورتی پارامتر تابع تاریخ تنها یک مقدار باشد،تاریخ جدید براساس میلی ثانیه محاسبه میشود.
مقدار میلی ثانیه چیست؟
این زمان یک مقدار عددی از روز ۱ ماه January سال ۱۹۷۰ و زمان ۰۰:۰۰:۰۰ تا زمان حال محاسبه میشود.
بنابراین مقدار ۰ در میلی ثانیه برابر با ۰۱, ۱۹۷۰ ۰۰:۰۰:۰۰ UTC است. گرفتن این دستور در ایران بدلیل اختلاف زمانی تایم زوم ۴۳۰+ ، مقدار متفاوت برگشت میزند.
نحوه نوشتن:
1 |
new Date(milliseconds); |
مثال:
1 2 |
const d = new Date(0); // Thu Jan 01 1970 03:30:00 GMT+0330 (Iran Standard Time) |
حال اگر مقدار بالاتر درج کنیم زمان به سمت جلو میرود.
مثال:
1 2 |
new Date(100000000000); //Sat Mar 03 1973 13:16:40 GMT+0330 (Iran Standard Time) |
حتی میتوان میلی ثانیه را بصورت عدد منفی وارد کرد در این حالت به سال های قبل ۱۹۷۰ برمیگردیم.
مثال:
1 2 |
const d = new Date(-100000000000); //Mon Oct 31 1966 17:43:20 GMT+0330 (Iran Standard Time) |
یک روز زمان معادل چند میلی ثانیه است؟
هر روز برابر با ۸۶۴۰۰۰۰۰ میلی ثانیه است.
نحوه محاسبه:
1 |
60*60*24*100 = 86400000 |
مثال:
1 2 |
const d = new Date(86400000); //Fri Jan 02 1970 03:30:00 GMT+0330 (Iran Standard Time) |
متدهای تاریخ
تاریخ دارای متدهایی کاربردی است که وظیفه هرکدام تنظیم یا برگشت دهنده مقدار موردنظر از تاریخ است.
این تنظیم و گرفتن می تواند برای سال،ماه،روز، ساعت، دقیقه، ثانیه، میلی ثانیه باشد.
در کنار آنها می توانید نوع تنظیم ساعت خود را GMT, UTC تنظیم کنید.
در قسمت بالا انواع روش تنظیم تاریخ را مشاهده کردید در اینجا قصد داریم انواع روش های نمایش تاریخ را معرفی کنیم.
انواع روش های نمایش تاریخ و زمان
همانطور که گفته شد جاوااسکریپت زمان را بصورت یک رشته کامل شامل: روز هفته،نام ماه، روز ماه،سال،ساعت،دقیقه،ثانیه، مقدار اختلاف زمانی،نوع زمان منطقه زمانی نمایش می دهد.
مثال:
1 |
Wed Mar 25 2015 04:30:00 GMT+0430 (Iran Daylight Time) |
جاوااسکریپت بصورت اتوماتیک در هنگام نمایش زمان آن را به رشته با استفاده از toString تبدیل میکند.
مثال:
1 2 3 |
const d = new Date(); document.getElementById("demo").innerHTML = d; //Fri Jan 02 1970 03:30:00 GMT+0330 (Iran Standard Time) |
این روش هیچ فرقی با دستور زیر ندارد.
مثال:
1 2 3 |
const d = new Date(); document.getElementById("demo").innerHTML = d.toString(); //Fri Jan 02 1970 03:30:00 GMT+0330 (Iran Standard Time) |
در صورتی که بخواهیم تاریخ خود را از حالت GMT به UTC تبدیل کنیم از تابع toUTCString استفاده کنید. در این حالت دیگر اختلاف زمانی در نظر گرفته نمیشود.
مثال:
1 2 3 |
const d = new Date(); document.getElementById("demo").innerHTML = d.toUTCString(); //Thu, 18 Aug 2022 15:48:23 GMT |
تابع toDateString زمان شما را قابل خواندن و کوتاه تر میکند. در این حالت زمان را رشته حذف میکند.
مثال:
1 2 3 |
const d = new Date(); document.getElementById("demo").innerHTML = d.toDateString(); //Thu Aug 18 2022 |
تابع toISOString تاریخ و زمان را در قالب رشته و با استفاده از فرمت استاندارد ISO نمایش میدهد.
مثال:
1 2 3 |
const d = new Date(); document.getElementById("demo").innerHTML = d.toISOString(); //2022-08-18T15:52:21.336Z |
لیست توابع تاریخ در جاوااسکریپت
نام تابع | توضیح | نحوه نوشتن |
تابع toDateString |
این متد تاریخ شما را کوتاه و بدون زمان در قالب رشته برگشت می دهد |
Date.toDateString(); |
تابع toISOString |
این متد تاریخ شما را کوتاه و بدون زمان در قالب رشته برگشت می دهد |
Date.toDateString(); |
تابع parse |
این تابع تاریخ شما را براساس ۳ فرمت اصلی دریافت کرده و مقدار عددی میلی ثانیه آن را از ۱ ژانویه سال ۱۹۷۰ برگشت می دهد. این تابع دارای ورودی است. |
Date.parse(datestring); |
تابع getTime |
این تابع از ۱ ژانویه سال ۱۹۷۰ تا زمان مورد نظر شما را در قالب میلی ثانیه برگشت می دهد. تابع دیگری که همین کار را می کند تابع Date.parse() است که این تابع تاریخ موردنظر را در قالب پارامتر دریافت میکند. هر روز معادل ۸۶۴۰۰۰۰۰ میلی ثانیه است. |
Date.getTime(); |
تابع valueOf |
این تابع مقدار اولیه آبجکت تاریخ موردنظر شما را برگشت می دهد. مقدار بازگشتی براساس تاریخ موردنظر شما از ۱ ژانویه سال ۱۹۷۰ در قالب یک عدد میلی ثانیه است. عملکرد این تابع شبیه تابع getTime میباشد. |
Date.valueOf(); |
تابع now |
این تابع برگشت دهنده زمان اکنون از ۱ ژانویه سال ۱۹۷۰ در قالب میلی ثانیه است. این تابع از توابع استاتیک آبجکت Date است و راه دسترسی به آن از طریق Date.now() می باشد. |
Date.now(); |
تابع getFullYear |
این تابع سال میلادی را در قالب ۴ رقم از سال ۱۰۰۰ تا ۹۹۹۹ برگشت می دهد. |
Date.getFullYear(); |
تابع getMonth |
این تابع ماه میلادی را براساس تایم محلی و در قالب عدد از ۰ که برابر با January و تا ۱۱ برگشت میدهد. |
Date.getMonth(); |
تابع getDate |
این تابع روز میلادی را براساس تایم محلی و در قالب عدد بین ۱ تا ۳۱ برگشت میدهد. |
Date.getDate(); |
تابع getHours |
این تابع ساعت زمان تعیین را در قالب عدد بین ۰ تا ۲۳ برگشت میدهد. |
Date.getHours(); |
تابع getMinutes |
این تابع دقیقه زمان تعیین شده را در قالب عدد بین ۰ تا ۵۹ برگشت میدهد. |
Date.getMinutes(); |
تابع getSeconds |
این تابع ثانیه زمان تعیین را در قالب عدد بین ۰ تا ۵۹ برگشت میدهد. |
Date.getSeconds(); |
تابع getMilliseconds |
این تابع مقدار میلی ثانیه زمان تعیین را در قالب عدد بین ۰ تا ۹۹۹ برگشت میدهد. |
Date.getMilliseconds(); |
تابع getDay |
این تابع براساس تاریخ تعیین شده روز هفته را بین بازه عدد ۰ تا ۶ برگشت میدهد. عدد ۶ برابر با شنبه و جمعه برابر با ۵ است. |
Date.getDay(); |
تابع toString |
این تابع آبجکت تاریخ شما را به رشته تبدیل میکند. این تابع معمولا بصورت اتوماتیک در زمانی که قصد نمایش تاریخ ساخته شده را داریم فراخوانی میشود. |
Date.toString(); |
تابع toUTCString |
این متد تاریخ شما را بر مبنای UTC نمایش می دهد. |
Date.toUTCString(); |
تابع getUTCDate |
این تابع روز میلادی را براساس تایم UTC و در قالب عدد بین ۱ تا ۳۱ برگشت میدهد. |
Date.getUTCDate(); |
تابع getUTCDay |
این تابع براساس تاریخ تعیین شده روز هفته را بین بازه عدد ۰ تا ۶ براساس UTC برگشت میدهد. |
Date.getUTCDay(); |
تابع getUTCFullYear |
این تابع سال میلادی را در قالب ۴ رقم از سال ۱۰۰۰ تا ۹۹۹۹ در قالب UTC برگشت می دهد. |
Date.getUTCFullYear(); |
تابع toUTCString |
این متد تاریخ شما را بر مبنای UTC نمایش می دهد. |
Date.toUTCString(); |
تابع setDate |
این تابع روز ماه را در تاریخ موردنظر بین عدد ۱ تا ۳۱ تنظیم می کند. |
|
تابع setFullYear |
این تابع سال را در قالب یک عدد ۴ رقمی از سال ۱۰۰۰ تا ۹۹۹۹ تنظیم می کند. |
Date.setFullYear(year, month, day);
|
تابع setHours |
این تابع برای شما ساعت را بر روی تاریخ از ۰ تا ۲۳ تنظیم می کند. |
Date.setHours(hour, min, sec, millisec);
|
تابع setMilliseconds |
این تابع میلی ثانیه تاریخ شما را تنظیم می کند. |
Date.setMilliseconds(millisec);
|
تابع setMinutes |
این تابع مقدار دقیقه تاریخ شما را تنظیم می کند. |
Date.setMinutes(min, sec, millisec);
|
تابع setMonth |
این تابع مقدار ماه تاریخ شما را تنظیم می کند. |
Date.setMonth(month, day);
|
تابع setSeconds |
این تابع مقدار ثانبه ساعت تاریخ شما را تنظیم می کند. |
Date.setSeconds(sec, millisec);
|
تابع setTime |
این تابع مقدار تاریخ و زمان را در قالب یک عدد تایم استمپ (میلی ثانیه) براساس ۱ ژانویه ۱۹۷۰ تنظیم می کند. |
Date.setTime(millisec);
|