به نام خدا با عرض سلام و احترام خدمت شما دوستان عزیز در ادامه آموزش جاوا اسکریت این جلسه قصد داریم به مبحث مهم تاریخ و زمان در جاوا اسکریپت بپردازیم.با ما همراه باشید.
نحوه استفاده از ابجکت تاریخ
ابجکت Date این به شما امکان می دهد با دسترسی به ساعت سیستم کامپیوتری از طریق مرورگر، زمان محلی کاربر را دریافت کنید. ابجکت Date همچنین چندین روش برای مدیریت، دستکاری و قالب بندی تاریخ و زمان ارائه می دهد.
ایجاد یک شیء تاریخ
قبل از شروع کار با تاریخ و زمان، باید یک شی Date ایجاد کنیم. برخلاف دیگر اشیاء ، مانند آرایه ها یا توابع، تاریخ ها شکل دقیق متناظری ندارند.تمام اشیاء تاریخ باید با استفاده از تابع سازنده Date که ()
Date می باشد ایجاد شوند.چهار روش مختلف برای ایجاد یک شی Date در جاوا اسکریپت وجود دارد.
سینتکس ( ) new Date
شما به سادگی می توانید یک شی Date جدید را بدون مقداردهی اولیه آن تعریف نمایید. در این حالت، مقدار تاریخ و زمان بر روی تاریخ و زمان فعلی در دستگاه کاربر که اسکریپت روی آن اجرا می شود، تنظیم می شود.
1 2 |
var d = new Date(); document.write(d); |
سینتکس new Date(year, month, …)
شما همچنین می توانید یک شی Date را با پاس دادن پارامترهای زیر که با کاما از هم جدا شده اند، مقداردهی اولیه کنید: سال، ماه، روز، ساعت، دقیقه، ثانیه، و میلی ثانیه.
پارامترهای سال و ماه صروری است ولی سایر پارامترها اختیاری هستند.
1 2 |
var d = new Date(2022,0,31,14,35,20,50); document.write(d); |
این تاریخ در واقع نشان دهنده 31 ژانویه2022 در ساعت 14:35:20 و 50 میلی ثانیه است. در صورت تمایل می توانید قسمت زمان را نادیده بگیرید و فقط قسمت تاریخ را مشخص کنید.
سینتکس new Date(dateString)
جاوا اسکریپت همچنین به شما این امکان را می دهد که با ارسال رشته ای که یک تاریخ یا تاریخ و زمان را نشان می دهد، یک شی Date ایجاد کنید،به عنوان مثال:
1 2 |
var d = new Date("31 January 2018"); document.write(d); |
این تاریخ نشاندهنده 31 ژانویه 2018 است. همچنین میتوانید رشتههایی مانند 31 2018jan یا هر یک از تغییرات معتبر را مشخص کنید، جاوا اسکریپت به طور خودکار آن را مدیریت میکند.
سینتکس new Date(milliseconds)
همچنین میتوانید با عبور از تعداد میلیثانیهها از ۱ ژانویه ۱۹۷۰، در ساعت ۰۰:۰۰:۰۰ به وقت گرینویچ، یک شی Date تعریف کنید. این زمان به عنوان عصر یونیکس شناخته می شود. زیرا سال 1970 سالی بود که سیستم عامل یونیکس به طور رسمی معرفی شد.به عنوان مثال:
1 2 |
var d = new Date(1517356800000); document.write(d); |
تاریخ فوق نشان دهنده چهارشنبه 31 ژانویه 2018 ساعت 05:30:00 GMT + 0530 میباشد.
هنگامی که نمونه ای از شی Date را ایجاد کردید، می توانید از متد های آن برای انجام کارهای مختلف مانند دریافت مؤلفه های مختلف یک تاریخ، تنظیم یا تغییر مقدار تاریخ و زمان و …استفاده نمایید.
توجه: جاوا اسکریپت با استفاده از میانبرهایی به نام “literals” برای ایجاد بیشتر ابجکت محلی بدون نیاز به استفاده از عملگر جدید را فراهم مینماید،مانند ()new Object()
, new Array
و ….
نحوه به دست آوردن تاریخ و زمان فعلی
برای دریافت تاریخ و زمان فعلی، یک ابجکت جدید Date بدون ارسال هیچ پارامتری ایجاد کنید. این متد یک ابجکت با تاریخ و زمان فعلی را ایجاد می کند. به عنوان مثال:
1 2 |
var now = new Date(); alert(now); // Display the current date and time |
خروجی این مثال چیزی شبیه به این خواهد بود (بسته به افست منطقه زمانی):
Fri Apr 22 2022 15:13:53 GMT+0430 (Iran Daylight Time)
نحوه ایجاد رشته های تاریخ و زمان در جاوا اسکریپت
ابجکت Date جاوا اسکریپت چندین متد مانند()toDateString()
, toLocaleDateString
و… را برای تولید رشته های تاریخ در قالب های مختلف ارائه می دهد. به عنوان مثال:
1 2 3 4 5 6 |
var d = new Date(); alert(d.toDateString()); // Display an abbreviated date string alert(d.toLocaleDateString()); // Display a localized date string alert(d.toISOString()); // Display the ISO standardized date string alert(d.toUTCString()); // Display a date string converted to UTC time alert(d.toString()); // Display the full date string with local time zo |
به طور مشابه، میتوانید از متدهای()toLocaleTimeString()
, toTimeString
ابجکت Date برای تولید رشتههای زمانی استفاده کنید، همانطور که در مثال زیر نشان داده شده است:
1 2 3 |
var d = new Date(); alert(d.toTimeString()); // Display the time portion of the date alert(d.toLocaleTimeString()); // Display a localized time string |
دریافت مولفه های خاص تاریخ و زمان درجاوا اسکریپت
هنگامی که یک ابجکت تاریخ دارید، تعدادی متد برای استخراج جزئیات از آن در دسترس شما می باشد، مانند ماه، تاریخ، ساعت یا مقدار دقیقه و …. بخش زیر متدهای مختلف استخراج تک تک اطلاعات را از ابجکت تاریخ نشان میدهد.
دریافت سال، ماه و تاریخ
ابجکت Date چندین متد مانند ()getFullYear()
, getMonth()
, getDay
و …را ارائه می دهد که می توانید از آنها برای استخراج اجزای خاص تاریخ از ابجکت Date، مانند سال، روز از ماه، روز هفته و …استفاده کنید.. مثال زیر نشان می دهد که چگونه می توان اجزای خاص تاریخ را با استفاده از این متدها از ابجکتDate دریافت کرد:
1 2 3 4 5 6 |
var d = new Date(); // Extracting date part alert(d.getDate()); // Display the day of the month alert(d.getDay()); // Display the number of days into the week (0-6) alert(d.getMonth()); // Display the number of months into the year (0-11) alert(d.getFullYear()); // Display the full year (four digits) |
متد ()getDay
به جای برگرداندن نامی مانند یکشنبه یا دوشنبه، عددی را که نشان دهنده روز هفته است (از 0 تا 6) برمی گرداند، به گونه ای که اگر یکشنبه باشد، متد 0 را برمی گرداند. و اگر دوشنبه باشد، متد 1 را برمی گرداند و به همین ترتیب.
به همین ترتیب، متد ()getMonth
تعداد ماه ها (از 0 تا 11) را به جای نام ماه برمی گرداند. در اینجا 0 نشان دهنده ماه اول سال است. بنابراین، اگر ژانویه باشد، متد 0 را برمی گرداند نه 1 را. و اگر آگوست باشد متد 7 را برمی گرداند.
دریافت ساعت، دقیقه، ثانیه و میلی ثانیه
getHours()
, getMinutes()
, getSeconds()
, getTimezoneOffset
و …را برای استخراج مولفه های زمان از ابجگت Date فراهم می کند.
1 2 3 4 5 6 7 8 |
var d = new Date(); // Extracting time part alert(d.getHours()); // Display the number of hours into the day (0-23) alert(d.getMinutes()); // Display the number of minutes into the hour (0-59) alert(d.getSeconds()); // Display the seconds into the minute (0-59) alert(d.getMilliseconds()); // Display the number of milliseconds into second (0-999) alert(d.getTime()); // Display the number of milliseconds since 1/1/1970 alert(d.getTimezoneOffset()); // Display the time-zone offset (from Greenwich Mean Time) in minutes |
()
getHours تعداد ساعات روز (از 0 تا 23) را با توجه به ساعت 24 ساعته برمی گرداند. بنابراین، وقتی نیمه شب است، متد 0 را برگردانده. و وقتی ساعت 3:00 P.M است، این متد مقدار 15 را برمی گرداند.getUTCDate()
, getUTCHour()
, getUTCMinutes.
تنظیم مقادیر تاریخ و زمان در جاوا اسکریپت
تنظیم سال، ماه و تاریخ
setFullYear()
, setMonth
و ()setDate
را برای تنظیم مؤلفه های سال، ماه، تاریخ شیء Date به ترتیب ارائه می کند.setFullYear
برای تغییر تاریخ جاری ذخیره شده در یک متغیر قبل از دو سال آینده استفاده کرده ایم.
1 2 3 |
var d = new Date(); d.setFullYear(d.getFullYear() + 2); alert(d); // Display future date |
خروجی مثال بالا چیزی شبیه به این خواهد بود:
setMonth
برای تنظیم یا تغییر قسمت ماه یک شی Date استفاده کنید.
1 2 3 |
var d = new Date(); // Current date and time d.setMonth(0); // Sets month to 0, January document.write(d); |
setMonth
به یک مقدار صحیح از 0 تا 11 نیاز دارد، اگر مقدار ماه را بزرگتر از 11 قرار دهید، مقدار سال شی date افزایش می یابد.به عبارت دیگر، مقدار 12 منجر به افزایش ارزش سال به میزان 1 می شود و مقدار ماه روی 0 تنظیم می شود، همانطور که در مثال زیر نشان داده شده است:
1 2 3 |
var d = new Date(2018, 5, 24); // June 24, 2018 d.setMonth(12); // Sets month to 12, new date will be January 24, 2019 document.write(d); |
به طور مشابه، می توانید قسمت تاریخ شیء Date را مانند این تغییر دهید:
1 2 3 |
var d = new Date(2018, 5, 24); // June 24, 2018 d.setDate(15); // Sets date to 15, new date will be June 15, 2018 document.write(d); |
setDate
به یک مقدار صحیح از 1 تا 31 نیاز دارد. همچنین، اگر مقادیر بیشتر از تعداد روزهای ماه را ارسال کنید، ماه افزایش می یابد. مثلا:
1 2 3 |
var d = new Date(2018, 5, 24); // June 24, 2018 d.setDate(36); // Sets day to 36, new date will be July 6, 2018 document.write(d); |
تنظیم ساعت، دقیقه و ثانیه
متدهای تنظیم مقادیر زمان نیز بسیار ساده هستند.()setHours()
, setMinutes()
, setSeconds()
, setMilliseconds
را می توان به ترتیب برای تنظیم ساعت، دقیقه، ثانیه و قسمت میلی ثانیه شی Date استفاده کرد.
هر متد مقادیر صحیح را به عنوان پارامتر می گیرد. محدوده ساعت ها از 0 تا 23 ، دقیقه ها و ثانیه ها از 0 تا 59 متغیر ، و میلی ثانیه ها از 0 تا 999 میباشد. به عنوان مثال:
1 2 3 4 5 6 |
var d = new Date(2018, 5, 24); // June 24, 2018 00:00:00 d.setHours(8); d.setMinutes(30); d.setSeconds(45); d.setMilliseconds(600); document.write(d); |
خروجی مثال بالا چیزی شبیه به زیر خواهد بود:
دیدگاهتان را بنویسید