JavaScript Set Date Methods
📅 متدهای تنظیم تاریخ در JavaScript
در جاوااسکریپت، شیء Date متدهایی برای تغییر (تنظیم) بخشهای مختلف تاریخ و زمان دارد.
📌 1️⃣ setFullYear()
سال را تنظیم میکند (و در صورت نیاز ماه و روز را هم میتوان تنظیم کرد).
let d = new Date();
d.setFullYear(2030);
با پارامترهای اختیاری:
d.setFullYear(2030, 5, 15);
// سال: 2030، ماه: ژوئن (۵ چون ماهها از صفر شروع میشوند)، روز: 15
📌 2️⃣ setMonth()
ماه را تنظیم میکند (عدد بین 0 تا 11).
d.setMonth(11); // دسامبر
با روز اختیاری:
d.setMonth(11, 25);
⚠ نکته مهم:
ماهها از صفر شروع میشوند:
-
0 = ژانویه
-
11 = دسامبر
📌 3️⃣ setDate()
روز ماه را تنظیم میکند (عدد بین 1 تا 31).
let d = new Date();
d.setDate(15);
💡 امکان استفاده از اعداد منفی یا بزرگتر هم وجود دارد:
d.setDate(0); // آخرین روز ماه قبل
d.setDate(32); // رفتن به ماه بعد
📌 4️⃣ setHours()
ساعت را تنظیم میکند (0 تا 23).
let d = new Date();
d.setHours(14); // ساعت 2 بعدازظهر
با پارامترهای اختیاری:
d.setHours(14, 30, 0, 0);
// ساعت، دقیقه، ثانیه، میلیثانیه
📌 5️⃣ setMinutes()
دقیقه را تنظیم میکند (0 تا 59).
d.setMinutes(45);
با پارامترهای اختیاری:
d.setMinutes(45, 30, 500);
📌 6️⃣ setSeconds()
ثانیه را تنظیم میکند (0 تا 59).
d.setSeconds(30);
با پارامتر اختیاری میلیثانیه:
📌 7️⃣ setMilliseconds()
میلیثانیه را تنظیم میکند (0 تا 999).
d.setMilliseconds(500);
📌 8️⃣ setTime()
تاریخ را بر اساس میلیثانیه از 1 ژانویه 1970 (مبدأ یونیکس) تنظیم میکند.
let d = new Date();
d.setTime(0); // Thu Jan 01 1970
🌍 نسخههای UTC
هر متد نسخهی UTC هم دارد (بدون در نظر گرفتن منطقه زمانی محلی):
| متد محلی | نسخه UTC |
|---|---|
| setFullYear() | setUTCFullYear() |
| setMonth() | setUTCMonth() |
| setDate() | setUTCDate() |
| setHours() | setUTCHours() |
| setMinutes() | setUTCMinutes() |
| setSeconds() | setUTCSeconds() |
| setMilliseconds() | setUTCMilliseconds() |
مثال:
d.setUTCHours(10);
🧠 رفتار مهم: تصحیح خودکار (Auto-Correction)
جاوااسکریپت در صورت وارد کردن مقدار خارج از محدوده، تاریخ را به صورت خودکار اصلاح میکند:
let d = new Date(“2025-01-31”);
d.setMonth(1);
// تبدیل به 3 مارس میشود (چون فوریه 31 روز ندارد)
✅ خلاصه سریع
-
ماهها از صفر شروع میشوند
-
مقادیر خارج از محدوده به صورت خودکار تنظیم میشوند
-
متدهای UTC منطقه زمانی را در نظر نمیگیرند
-
setTime()بر اساس میلیثانیه از سال 1970 کار میکند
دیدگاهتان را بنویسید