متدهای تعیین تاریخ در جاوا اسکریپت

24 بهمن 1397
javascript-date-method

امروز قصد داریم در رابطه با متدهای تعیین تاریخ در جاوا اسکریپت صحبت کنیم. برخی از اوقات نیاز داریم تا تاریخ را خودمان تعیین کنیم و در چنین موقعیت هایی این توابع و توابع جلسه ی قبل نیاز اصلی ما خواهند بود.

توابع تعیین تاریخ

جدول زیر نشان دهنده ی معروف ترین متدهای مربوط به تعیین تاریخ در جاوا اسکریپت است. توجه داشته باشید که دریافت (get) در مقابل تعیین یا تنظیم کردن (set) است. متدهای مربوط به دریافت تاریخ را در جلسه ی قبل مرور کرده ایم، در صورت نیاز به آن مراجعه کنید.

تعیین روز به صورت یک شماره (31-1) ()setDate
تعیین سال کامل (چهار رقمی) ()setFullYear
تعیین ساعت (23-0) ()setHours
تعیین میلی ثانیه (999-0) ()setMilliseconds
تعیین دقیقه (59-0) ()setMinutes
تعیین ماه (11-0) ()setMonth
تعیین ثانیه (59-0) ()setSeconds
تعیین زمان(در واحد میلی‌ثانیه، سپری شده از 1 ژانویه 1970) ()setTime

متد ()setFullYear

این متد سال مورد نظر ما را به صورت عدد چهار رقمی تعیین می کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setFullYear()</h2>

<p>The setFullYear() method sets the year of a date object:</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setFullYear(2020);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

خروجی این کد به شرح زیر خواهد بود:

Mon Feb 03 2020 18:29:43 GMT+0330 (Iran Standard Time)

نکته: این متد می تواند در صورت نیاز ماه و روز را نیز تعیین کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setFullYear()</h2>

<p>The setFullYear() method can optionally set month and day.</p>
<p>Please note that month counts from 0. December is month 11:</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setFullYear(2020, 11, 3);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

خروجی این کد به شرح زیر خواهد بود:

Thu Dec 03 2020 18:33:40 GMT+0330 (Iran Standard Time)

متد ()setMonth

این متد ماه مورد نظر ما را به صورت عددی بین 0 تا 11 تعیین می کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setMonth()</h2>

<p>The setMonth() method sets the mont of a date object.</p>
<p>Note that months count from 0. December is month 11:</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setMonth(11);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

خروجی برخی از کد های این جلسه به زمان بستگی دارد و همراه آن جلو می رود بنابراین خروجی چنین مثال هایی را تنها می توان با ادیتور آنلاین جاوا اسکریپت مشاهده کرد.

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

متد ()setDate

این متد روز را به صورت عددی بین 0 تا 31 تعیین می کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setDate()</h2>

<p>The setDate() method sets the day of a date object:</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setDate(15);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

نکته: شما می توانید از متد ()setDate برای اضافه کردن روز به یک تاریخ خاص استفاده کنید. مثال:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setDate()</h2>

<p>The setDate() method can be used to add days to a date.</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setDate(d.getDate() + 50);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

کد بالا ابتدا تاریخ کنونی را می گیرد و سپس 50 روز به آن اضافه می کند.

سوال: اگر اضافه کردن روز ها، باعث تغییر ماه یا سال شود چه اتفاقی رخ خواهد داد؟

پاسخ: اگر چنین اتفاقی بیوفتد و به طور مثال روز هایی که اضافه کرده اید از 30 اُم یا 31 اُم ماهی بیشتر باشند، جاوا اسکریپت تمام تغییرات را به صورت خودکار تنظیم خواهد کرد بنابراین جای نگرانی نیست.

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

متد ()setHours

این متد ساعت مورد نظر از یک تاریخ خاص را برای ما تعیین می کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setHours()</h2>

<p>The setHours() method sets the hours of a date object:</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setHours(22);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

متد ()setMinutes

این متد دقیقه ی یک تاریخ خاص را برای ما تعیین می کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setMinutes()</h2>

<p>The setMinutes() method sets the minutes of a date object (0-59):</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setMinutes(30);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

متد ()setSeconds

این متد ثانیه ی یک تاریخ خاص را برای ما تعیین می کند:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript setSeconds()</h2>

<p>The setSeconds() method sets the seconds of a date object (0-59):</p>

<p id="demo"></p>

<script>
var d = new Date();
d.setSeconds(30);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

مقایسه ی تاریخ ها

مقایسه ی تاریخ ها در جاوا اسکریپت کار بسیار آسانی است. مثال زیر، تاریخ کنونی را گرفته و با تاریخ 14 ژانویه ی سال 2100 میلادی مقایسه می کند:

<!DOCTYPE html>
<html>
<body>

<p id="demo" dir="rtl"></p>

<script>
var today, someday, text;
today = new Date();
someday = new Date();
someday.setFullYear(2100, 0, 14);

if (someday > today) {
  text = "ما هنوز به 14 ژانویه ی سال 2100 نرسیده ایم!";
} else {
  text = "ما 14 ژانویه ی سال 2100 را پشت سر گذاشته ایم";
}
document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت

باید در رابطه با این کد توضیحاتی را خدمتتان ارائه کنم:

  • این کد ابتدا سه متغیر today (به معنی امروز) و someday (به معنی روزی) و text (به معنی متن) را تعریف می کند.
  • سپس تاریخ someday را روی 14 ژانویه ی سال 2100 تنظیم می کنیم و به today تاریخ کنونی را می دهیم.
  • حالا می گوییم دو متغیر someday و today را مقایسه کن و اگر مقدار someday بیشتر باشد یعنی هنوز به این تاریخ نرسیده ایم.
  • از آن جایی که هنوز به این تاریخ نرسیده ایم پیام "ما هنوز به 14 ژانویه ی سال 2100 نرسیده ایم!" برای ما نمایش داده خواهد شد.

امیدوارم از این قسمت لذت برده باشید. بهتر است این متدها را چندین بار تمرین کنید تا در آینده نیازی به برگشتن به این مقاله نداشته باشید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش جاوا اسکریپت | Javascript توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.