آموزش جاوا اسکریپت – فصل چهاردهم: تاریخ (Date)

زبان جاوا اسکریپت به طور اختصاصی یک آبجکت برای کار کردن با تاریخ و زمان به برنامه نویسان ارائه می دهد. با استفاده از این Object تاریخ ارائه داده شده توسط زبان جاوا اسکریپت برنامه نویس قادر است تا با مقادیر ممکن برای تاریخ و زمان مانند ساعت، روز، هفته یا ماه عملیات ها را برنامه ریزی کند.

جاوا اسکریپت - فصل چهاردهم: تاریخ Date

دریافت تاریخ در زبان جاوا اسکریپت

مثال زیر نحوه استفاده از شیء تاریخ در زبان جاوا اسکریپت را نشان می دهد:

Date(); //current date
//or
var currentDate = new Date(); //current date

فصل 14 – مثال 1

همانطور که در مثال بالا می بینید می توانید با استفاده از آبجکت تاریخ Date() و کلمه کلیدی new به سرعت تاریخ حال حاضر را چاپ کنید.

اگر می خواهید با تاریخی غیر از تاریخ حال حاضر کار کنید باید موقع ساخت object تاریخ، به یکی از روش های زیر زمان دقیق مورد نظر خود را مشخص کنید:

var dt = new Date();

var dt = new Date(milliseconds);

var dt = new Date('date string');

var dt = new Date(year, month[, date, hour, minute, second, millisecond]);

همانطور که در مثال های بالا می بینید می توانید به روشهای مختلف یک زمان را در یک شیء تاریخ در زبان جاوا اسکریپت مشخص کنید.

روش های استفاده از Object تاریخ در جاوا اسکریپت

روش های زیر برای تعریف یک Object تاریخ در زبان جاوا اسکریپت ممکن است:

بدون پارامتر اضافه:

بدون پاس دادن هیچگونه پارامتری، جاوا اسکریپت زمان حال حاضر را برای ساخت شی تاریخ مد نظر قرار می دهد.

میلی ثانیه:

در صورت استفاده از میلی ثانیه برای مشخص کردن زمان آبجکت تاریخ، جاوا اسکریپت عدد داده شده را به عنوان میلی ثانیه به تاریخ 1/1/1970 اضافه می کند و شی را بر اساس آن تاریخ می سازد. یعنی درواقع شما مشخص می کنید که تاریخ مد نظر شما چند میلی ثانیه بعد از تاریخ 1/1/1970 است.

مثال زیر نحوه تولید Object تاریخ با استفاده از میلی ثانیه است (این عدد به تاریخ 1/1/1970 اضافه می شود):

var date1 = new Date(0);  // Thu Jan 01 1970 05:30:00

var date2 = new Date(1000); // Thu Jan 01 1970 05:30:01

var date3 = new Date(5000); // Thu Jan 01 1970 05:30:05

فصل 14 – مثال 2

رشته تاریخ:

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

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

var date1 = new Date("3 march 2019");

var date2 = new Date("3 February, 2019");

var date3 = new Date("3rd February, 2019"); // invalid date

var date4 = new Date("2019 3 February");

var date5 = new Date("3 2019 February ");

var date6 = new Date("February 3 2019");

var date7 = new Date("February 2019 3");

var date8 = new Date("2 3 2019");

var date9 = new Date("3 march 2019 20:21:44");

فصل 14 – مثال 3

زبان جاوا اسکریپت می تواند علامت های متفاوت جدا کننده بین قسمت های تاریخ را تشخص دهد. به مثال زیر توجه کنید:

var date1 = new Date("February 2019-3");

var date2 = new Date("February-2019-3");

var date3 = new Date("February-2019-3");

var date4 = new Date("February,2019-3");

var date5 = new Date("February,2019,3");

var date6 = new Date("February*2019,3");

var date7 = new Date("February$2019$3");

var date8 = new Date("3-2-2019"); // MM-dd-YYYY

var date9 = new Date("3/2/2019"); // MM-dd-YYYY

فصل 14 – مثال 4

مشخص کردن همه پارامتر ها:

همچنین برنامه نویس می تواند تمامی پارامتر هایی که این شی دریافت می کند را در هنگام ساخت مشخص کند. لیست پارامتر ها به ترتیب به شرح زیر است:

  • year: عدد سال تاریخ.
  • month: عدد ماه، از صفر تا 11.
  • date: عدد روز تاریخ (اختیاری).
  • hour: عدد ساعت تاریخ در روز مد نظر (اختیاری).
  • minute: عدد دقیقه در ساعت مد نظر ( اختیاری).
  • second: عدد ثانیه در دقیقه مد نظر ( اختیاری).
  • millisecond: یک سگمنت زمانی به میلی ثانیه (اختیاری)
var dt = new Date(2019, 2, 3, 10, 30, 50, 800); // Mon Mar 03 2014 10:30:50

فصل 14 – مثال 5

تبدیل فرمت تاریخ در جاوا اسکریپت

جاوا اکریپت به صورت پیشفرض از فرمت ISO 8601 برای تاریخ استفاده می کند. YYYY-MM-DDTHH:mm:ss.sss

var dt = new Date('2019-02-10T10:12:50.5000z');

فصل 14 – مثال 6

برنامه نویس می تواند با استفاده از متود های قرار داده شده در زبان جاوا اسکریپت فرمت تاریخ را به سادگی تغییر دهد. به عنوان مثال فرمت تاریخ را به Universal Time یا GMT تغییر دهد.
مثال زیر نحوه تغییر فرمت تاریخ را به فرمت های مختلف نشان می دهد:

var date = new Date('2019-02-10T10:12:50.5000Z');


date; //'Default format:'

date.toDateString();//'Tue Feb 10 2019'

date.toLocaleDateString();//'2/10/2019'

date.toGMTString(); //'GMT format' 

date.toISOString(); //'2019-02-10T10:12:50.500Z' 

date.toLocaleString();//'Local date Format '

date.toLocaleTimeString(); //'Locale time format '

date.toString('YYYY-MM-dd'); //'Tue Feb 10 2019 15:42:50'

date.toTimeString(); //'15:42:50' 

date.toUTCString(); //'UTC format'

فصل 14 – مثال 7

اگر می خواهید تاریخ را به فرمتی غیر از فرمت های بالا تبدیل کنید، باید کدهای جدید برای انجام این کار بنویسید.
مثال زیر نحوه تغییر فرمت تاریخ به DD-MM-YYYY را نشان می دهد:

var date = new Date('2019-1-4'); // YYYY-M-D

var d = date.getDate();
var m = date.getMonth() + 1;
var y = date.getFullYear();

var dateString = y + '-' + (m <= 9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
    alert(dateString);

فصل 14 - مثال 8

کتابخانه های جاوا اسکریپتی وجود دارند به صورت دقیق تر قادرند با تابع تاریخ کار کنند. می توانید در مورد datejs یا moment.js در صفحات رسمی آن ها مطالعه کنید.

متود Parse برای تبدیل تاریخ به میلی ثانیه در زبان جاوا اسکریپت

متود Parse در شی تاریخ قادر است تا زمان گذشته از تاریخ 1/1/970 را به میلی ثانیه باز گرداند.

به مثال زیر توجه کنید:

Date.parse("5/2/2019"); // 1430505000000

var date = new Date(Date.parse("5/2/2019")); // Sat May 02 2019 00:00:00

فصل 14 - مثال 9

مقایسه دو تاریخ در زبان جاوا اسکریپت

مقایسه دو تاریخ به سادگی با استفاده از عملگر های > < یا = قابل انجام است.

به مثال زیر توجه کنید:

var date1 = new Date('2019-01-01');
var date2 = new Date('2019-01-02');

if (date1 > date2)
    alert(date1 + ' بزرگتر است از ' + date2);
else (date1 < date2 )
    alert(date1 + ' کوچکتر است از' + date2);

فصل 14 - مثال 10

متود های قابل استفاده بر روی Object از نوع Date

جدول زیر نشان دهنده متود هایی است که یک مقدار را می گردانند:

متودتوضیحات
Date() تاریخ و زمان حال حاضر را باز می گرداند.
getDate() شماره روز یک تاریخ در یک ماه (1 تا 31)
getDay() شماره روز یک تاریخ در یک هفته (0 تا 6)
getFullYear() 4 رقم سال یک تاریخ
getHours() شماره ساعت یک تاریخ در یک روز (0 تا 23)
getMilliseconds() شماره میلی ثانیه یک تاریخ در یک ثانیه (0 تا 999)
getMinutes() شماره دقیقه یک تاریخ در یک ساعت (0 تا 59)
getMonth() شماره ماه یک تاریخ در یک سال (0 تا 11)
getSeconds() شماره ثانیه یک تاریخ در یک دقیقه (0 تا 59)
getTime() کل تاریخ را صورت میلی ثانیه از تاریخ یکم ژانویه , 1970, 00:00:00 UTC.
getTimezoneOffset() فاصله زمانی time zone کنونی را باز می گرداند.
getUTCDate() شماره روز یک تاریخ در یک ماه (1 تا 31) بر اساس استاندارد زمانی UTC
getUTCDay() شماره روز یک تاریخ در یک هفته (0 تا 6) بر اساس استاندارد زمانی UTC
getUTCFullYear() 4 رقم سال یک تاریخ بر اساس استاندارد زمانی UTC
getUTCHours() شماره ساعت یک تاریخ در یک روز (0 تا 23) بر اساس استاندارد زمانی UTC
getUTCMilliseconds() شماره میلی ثانیه یک تاریخ در یک ثانیه (0 تا 999) بر اساس استاندارد زمانی UTC
getUTCMinutes() شماره دقیقه یک تاریخ در یک ساعت (0 تا 59) بر اساس استاندارد زمانی UTC
getUTCMonth() شماره ماه یک تاریخ در یک سال (0 تا 11) بر اساس استاندارد زمانی UTC
getUTCSeconds() شماره ثانیه یک تاریخ در یک دقیقه (0 تا 59) بر اساس استاندارد زمانی UTC
getYear() این متود در نسخه های جدید حذف شده است.

جدول زیر نشان دهنده متود هایی است که مقداری را بر روی یک Object از نوع Date، ست می کنند:

متودتوضیحات
setDate() شماره روز یک شی تاریخ را ست می کند.
setFullYear() عدد 4 رقمی را به عنوان سال شی تاریخ ست می کند. به صوررت اختیاری month و day را نیز ست می کند.
setHours() شماره ساعت یک شی تاریخ را ست می کند. به صورت اختیاری
min, sec, millisec را نیز ست می کند.
setMilliseconds() شماره میلی ثانیه یک شی تاریخ را ست می کند.
setMinutes() شماره دقیقه یک شی تاریخ را ست می کند. به صورت اختیاری sec, millisec را نیز ست می کند.
setMonth() شماره ماه یک شی تاریخ را ست می کند. به صورت اختیاری day را نیز ست می کند.
setSeconds() شماره ثانیه یک شی تاریخ را ست می کند. به صورت اختیاری میلی ثانیه را نیز ست می کند.
setTime() زمان تاریخ را بر اساس میلی ثانیه ست می کند. عدد وارد شده به January 1, 1970, 00:00:00 UTC اضافه می شود.
setUTCDate() شماره روز یک شی تاریخ را براساس استاندارد زمانی UTC ست می کند.
setUTCFullYear() عدد 4 رقمی را به عنوان سال شی تاریخ را براساس استاندارد زمانی UTC ست می کند. به صورت اختیاری month و day را نیز ست می کند.
setUTCHours() شماره ساعت یک شی تاریخ را براساس استاندارد زمانی UTC ست می کند. به صورت اختیاری min, sec, millisec را نیز ست می کند.
setUTCMilliseconds() شماره میلی ثانیه یک شی تاریخ را براساس استاندارد زمانی UTC ست می کند.
setUTCMinutes() شماره دقیقه یک شی تاریخ را براساس استاندارد زمانی UTC ست می کند. به صورت اختیاری sec, millisec را نیز ست می کند.
setUTCMonth() شماره ماه یک شی تاریخ را براساس استاندارد زمانی UTC ست می کند. به صورت اختیاری day را نیز ست می کند.
setUTCSeconds() شماره ثانیه یک شی تاریخ را براساس استاندارد زمانی UTC ست می کند. به صورت اختیاری میلی ثانیه را نیز ست می کند.
setYear() این متود در نسخه های جدید حذف شده است.

متود های دیگر قابل استفاده بر روی داده نوع Date:

متودتوضیحات
toDateString() قسمت تاریخ یک آبجکت Date را باز می گرداند. (بدون زمان)
toGMTString() تاریخ دقیق یک شی Date را بر اساس ناحیه زمانی GMT باز می گرداند.
toLocaleDateString() قسمت تاریخ یک آبجکت Date را بر اساس locale حال حاضر باز می گرداند. (بدون زمان)
toLocaleFormat() یک رشته تاریخ را در فرمت پیشفرض از می گرداند.
toLocaleString() یک رشته تاریخ را با استفاده از locale حال حاضر باز می گرداند.
toLocaleTimeString() قسمت زمان یک شی تاریخ را بر اساس locale حال حاضر باز می گرداند.
toString() یک شی تاریخ را به رشته تبدیل می کند.
toTimeString() یک شی تاریخ را به رشته ای حاوی بخش زمان آن تبدیل می کند.
toUTCString() یک رشته تاریخ را بر اساس استاندارد زمانی UTC باز می گرداند.
valueOf() مقدار اصلی یک شی تاریخ را باز می گرداند.


ویدیوها و مطالب مشابه