از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
مقایسه دو تاریخ در جاوا اسکریپتDates یک نوع داده بسیار رایج است که توسعه دهندگان با آن کار می کنند. از مُهرهای زمانی اقدامات خاص گرفته تا گزارشها، ویژگیهای ثبت نام و دسترسی محدود در سیستمهایی که نیاز به اشتراک دارند – اغلب اوقات مجبوریم تاریخها را با هم مقایسه کنیم. یعنی مقایسه می کنیم که یک تاریخ بعد یا قبل از دیگری باشد، اگر تاریخ …
سرفصلهای مطلب
معرفی
تاریخ ها یک نوع داده بسیار رایج هستند که توسعه دهندگان با آن کار می کنند. از مُهرهای زمانی اقدامات خاص گرفته تا گزارشها، ویژگیهای ثبت نام و دسترسی محدود در سیستمهایی که نیاز به اشتراک دارند – اغلب اوقات مجبوریم تاریخها را با هم مقایسه کنیم.
یعنی اگر تاریخ بعد یا قبل از دیگری باشد، اگر تاریخ باشد، مقایسه می کنیم امروز، چند روز بین تاریخ ها و غیره وجود دارد.
در این مقاله نگاهی خواهیم داشت روش مقایسه دو تاریخ در جاوا اسکریپت، به ما کمک می کند تا بفهمیم تاریخ قبل یا بعد از دیگری است.
را تاریخ شی در جاوا اسکریپت
توسعه دهندگان وب معمولا از بسته های خارجی استفاده می کنند (مانند Moment.js) برای رسیدگی به عملیات تاریخ-زمان. اما، با تکامل وب مدرن، جاوا اسکریپت سازنده شی جدیدی به نام معرفی کرد Date
برای رسیدگی به عملیات تاریخ-زمان
این به این معنی است که برای انجام بررسی ها و عملیات ابتدایی نیازی به کتابخانه خارجی ندارید که انجام این کارها را در Vanilla JS آسان تر می کند.
را Date
درک کلاس زیر کاپوت بسیار ساده است – فقط ذخیره می شود زمان یونیکس در میلی ثانیه اندازه گیری می شود.
زمان یونیکس به عنوان تعداد ثانیه های سپری شده از دوران یونیکس (00:00:00 UTC 1 ژانویه 1970) اندازه گیری می شود که یک تاریخ کاملاً دلخواه است.
حتی اگر این پیاده سازی کمی ساده به نظر می رسد، اضافه شدن Date
کلاس پیشرفت بزرگی بود، زیرا در نهایت سطحی از انتزاع بین توسعه دهندگان و خرمای خام وجود داشت.
اکنون، بیایید به روش های مختلف برای مقایسه دو تاریخ با استفاده از آن نگاه کنیم Date
اشیاء.
مقایسه دو تاریخ در جاوا اسکریپت
می توانیم از عملگرهای مقایسه ای مانند استفاده کنیم <
و >
برای مقایسه دو Date
اجسام، و زیر کاپوت، شمارشگر زمان آنها به طور موثر مقایسه می شود. شما به طور موثر دو شمارنده عدد صحیح را با هم مقایسه می کنید:
function dateCompare(d1, d2){
const date1 = new Date(d1);
const date2 = new Date(d2);
if(date1 > date2){
console.log(`${d1} is greater than ${d2}`)
} else if(date1 < date2){
console.log(`${d2} is greater than ${d1}`)
} else{
console.log(`Both dates are equal`)
}
}
dateCompare("6/11/2020", "7/8/2019")
dateCompare("01/01/2021", "01/01/2021")
این منجر به:
6/11/2020 is greater than 7/8/2019
Both dates are equal
همانطور که می بینیم، مقایسه تاریخ ها فقط به تبدیل رشته های ارائه شده به تبدیل می شود Date
اشیاء و مقایسه آنها با یک عملگر مقایسه مناسب.
توجه داشته باشید: عملگرهای برابری (==
و ===
) با آن کار نکنید Date
اشیاء، بنابراین ما به صراحت بررسی نمی کنیم که آیا آنها یکسان هستند یا خیر.
راه دیگر برای مقایسه دو تاریخ با استفاده از داخلی است getTime()
روش.
را getTime()
متد تعداد میلی ثانیه های سپری شده از دوره یونیکس را برمی گرداند. علاوه بر این، می توانید از getDate()
، getHours()
، getDay()
، getMonth()
و getYear()
روشهایی برای تعیین بیشتر و مقایسه اطلاعات، در میان روشهای مشابه با نامهای مشابه.
علاوه بر این، شما همچنین می توانید استفاده کنید getUTCDay()
، getUTCDate()
، getUTCHour()
، getUTCMinute()
روشها و غیره، که شناسههای زمانی داده شده را بهطور خاص به UTC منطقهبندی میکنند.
توجه داشته باشید که با این رویکرد، شما می توان از عملگرهای برابری استفاده کنید!
بیایید به یک مثال نگاه کنیم:
function compareDates(d1, d2){
const date1 = new Date(d1);
const date2 = new Date(d2);
if(date1.getTime() > date2.getTime()){
console.log(`${d1} is greater than ${d2} in terms of milliseconds`)
} else if(date1.getYear() < date2.getYear()){
console.log(`${d2} is greater than ${d1} in terms of years`)
} else if(date1.getDate() === date2.getDate()){
console.log(`Both dates are equal`)
}
}
compareDates("9/10/1997", "9/10/2000")
compareDates("11/11/2021", "11/1/2021")
این منجر به:
9/10/2000 is greater than 09/10/1997 in terms of years
11/11/2021 is greater than 11/1/2021 in terms of milliseconds
اگرچه، از آنجایی که ما در حال کار با if
و if-else
برخی از دستورات هرگز اجرا نمی شوند. مثلا، 9/10/1997
و 9/10/2000
همین را داشته باشند تاریخ، 9/10
اگرچه در همان سال نیست.
مثلا این کد:
function compareDates(d1, d2){
const date1 = new Date(d1);
const date2 = new Date(d2);
if(date1.getDate() === date2.getDate()){
console.log(`Both dates are equal`)
}
}
compareDates("09/10/1997", "9/10/2000")
منجر به:
Both dates are equal
از آنجایی که ما فقط تاریخ را بدون در نظر گرفتن سال مقایسه می کنیم.
نتیجه
در این مقاله، به طور مختصر به روش استفاده از جاوا اسکریپت با تاریخ ها پرداخته ایم Date
اشیاء. سپس، روش مقایسه تاریخ ها را در جاوا اسکریپت، با در نظر گرفتن روش های مفید، پوشش داده ایم.
منتشر شده در 1403-01-17 10:52:03