12- آموزش جاوااسکریپت | کار با شیء تاریخ (Date Object)
در این آموزش به بررسی شیء Date در جاوااسکریپت میپردازیم. یاد میگیریم چگونه تاریخهای فعلی و دلخواه را ایجاد کنیم، از متدهای Get برای دریافت اطلاعات زمانی استفاده کنیم و با متدهای Set، تاریخها را تغییر دهیم.
مدیریت تاریخ و زمان یکی از نیازهای اساسی در هر پروژهای است. جاوااسکریپت شیء داخلی به نام Date را برای این منظور فراهم کرده است. Date یک نوع داده ارجاعی (Reference Type) و در واقع یک Object است.
ایجاد شیء تاریخ (Instantiating)
سادهترین راه برای دریافت تاریخ و زمان حال، استفاده از متد سازنده new Date() است:
const today = new Date();
console.log(today); // نمایش تاریخ و زمان فعلی سیستم
console.log(typeof today); // "object"
برای ایجاد یک تاریخ خاص، میتوانید مقادیر مختلفی را به سازنده پاس دهید:
// روشهای مختلف تعریف تاریخ
const birthday = new Date('10-23-1989');
const specificDate = new Date('October 23 1989 11:25:00');
دریافت اطلاعات زمانی (Getters)
برای استخراج بخشهای مختلف تاریخ، از متدهای Get استفاده میکنیم. نکته بسیار مهم این است که ماه در جاوااسکریپت صفر-محور (Zero-based) است؛ یعنی 0 برابر با ژانویه و 11 برابر با دسامبر است.
const date = new Date();
console.log(date.getMonth()); // دریافت ماه (0-11)
console.log(date.getDate()); // دریافت روز ماه
console.log(date.getDay()); // دریافت روز هفته (0=یکشنبه، 1=دوشنبه و...)
console.log(date.getFullYear()); // دریافت سال چهار رقمی
console.log(date.getHours()); // دریافت ساعت
console.log(date.getMinutes()); // دریافت دقیقه
console.log(date.getSeconds()); // دریافت ثانیه
console.log(date.getMilliseconds()); // دریافت میلیثانیه
console.log(date.getTime()); // دریافت Timestamp (تعداد میلیثانیهها از 1 ژانویه 1970)
تغییر تاریخ (Setters)
علاوه بر دریافت مقادیر، میتوانیم بخشهای مختلف یک شیء Date را نیز تغییر دهیم. متدهای Set مستقیماً آبجکت موجود را تغییر میدهند (Mutate):
const myDate = new Date('10-23-1989');
myDate.setMonth(2); // تغییر ماه به مارس
myDate.setDate(12); // تغییر روز به 12
myDate.setFullYear(1985); // تغییر سال به 1985
myDate.setHours(3); // تغییر ساعت به 3
myDate.setMinutes(30); // تغییر دقیقه به 30
console.log(myDate); // نمایش تاریخ تغییر یافته
نکات کلیدی
- Zero-based بودن ماهها: این موضوع رایجترین منبع خطا برای توسعهدهندگان مبتدی است. همیشه به یاد داشته باشید که ماه ژانویه 0 است.
- Timestamp: متد
getTime()برای محاسبات زمانی (مثلاً محاسبه فاصله بین دو تاریخ) بسیار مفید است، زیرا یک عدد مطلق را برمیگرداند. - مستندات: برای مشاهده تمامی متدهای موجود، مطالعه مستندات MDN (Mozilla Developer Network) برای شیء Date اکیداً توصیه میشود.
جمعبندی
در این بخش آموختیم:
- نحوه ایجاد شیء تاریخ با
new Date(). - تفاوت بین نوع داده Date و String.
- استفاده از متدهای Get برای استخراج اجزای تاریخ و زمان.
- مدیریت ماههای صفر-محور.
- استفاده از متدهای Set برای ویرایش یک تاریخ موجود.
در آموزش بعدی، به سراغ ساختارهای کنترلی (Control Structures)، شامل دستورات شرطی (if statements) و عملگرهای مقایسهای میرویم.