کار با Date.setMonth در جاوااسکریپت

javascript date setmonth guide
11 آذر 1403

در جاوااسکریپت، وقتی با تاریخ‌ها کار می‌کنیم، گاهی اوقات نیاز به تغییر مقدار ماه در تاریخ هستیم. برای این کار، می‌توانیم از متد Date.setMonth استفاده کنیم. این متد یکی از چندین متدی است که برای تغییر بخش‌های مختلف شیء Date در دسترس است.

فرض کنید یک تاریخ خاص داریم و می‌خواهیم ماه آن را تغییر دهیم. برای این‌که این کار را انجام دهیم، ابتدا شیء جدیدی از تاریخ ایجاد می‌کنیم و سپس با استفاده از متد setMonth ماه آن را به ماه جدید تغییر می‌دهیم.

یکی از نکات قابل‌توجه در استفاده از setMonth این است که باید دقت کنید که شاخص‌های ماه از صفر شروع می‌شوند، یعنی ژانویه برابر با ۰ و دسامبر برابر با ۱۱ است. این یعنی اگر مقداری خارج از این بازه وارد کنید، جاوااسکریپت به طور خودکار به ماه‌های بعد یا قبل حرکت می‌کند.

به عنوان مثال، اگر ماه را به ۱۳ تنظیم کنید، تاریخ به‌صورت خودکار به ماه ژانویه سال بعد تغییر می‌کند. این موضوع کمک بزرگی به برنامه‌نویسان می‌کند تا نیازی به محاسبات پیچیده برای تغییر تاریخ‌ها نداشته باشند.

همچنین، می‌توانید با استفاده از این متد، ماه جدید را به همراه روز مورد نظر خود تعیین کنید. این کار با دادن دومین آرگومان به setMonth قابل انجام است.

حالا بیایید ببینیم که این متد چگونه کار می‌کند با استفاده از یک مثال:

<script>
const date = new Date(2023, 0, 15); // 15 January 2023
console.log('Original date: ', date);

date.setMonth(5); // Changing month to June (index 5)
console.log('Date after changing month: ', date);

date.setMonth(11, 1); // Setting month to December (index 11) and day to 1
console.log('Date after setting month and day: ', date);
</script>

در کد بالا:

const date = new Date(2023, 0, 15);
یک شیء Date برای ۱۵ ژانویه ۲۰۲۳ ایجاد می‌کند.

console.log('Original date: ', date);
تاریخ اصلی را به کنسول چاپ می‌کند.

date.setMonth(5);
ماه را به ژوئن تغییر می‌دهد (شاخص ۵ معادل ژوئن است).

console.log('Date after changing month: ', date);
تاریخ پس از تغییر ماه را به کنسول چاپ می‌کند.

date.setMonth(11, 1);
ماه و روز را به دسامبر (شاخص ۱۱) و ۱ تغییر می‌دهد.

console.log('Date after setting month and day: ', date);
تاریخ پس از تنظیم ماه و روز را به کنسول چاپ می‌کند.

سوالات متداول

؟

چطور با Date.setMonth ماه تاریخ را تغییر دهیم؟

؟

Input شاخص 13 برای setMonth چه تاثیری دارد؟