از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
جاوا اسکریپت: تعداد روز بین تاریخ ها را دریافت کنید ما اغلب اوقات خود را در حال شمارش تعداد روزها از تاریخ و تا تاریخ می بینیم. چه زمانی محاسبه شود که کسی قرار است کتابی را برگرداند، چه زمانی اشتراک باید تمدید شود، چند روز از اعلان گذشته است یا زمانی که رویداد جدیدی در راه است. در این آموزش، ما …
سرفصلهای مطلب
معرفی
ما اغلب در حال شمارش روزها هستیم از جانب و به یک تاریخ چه زمانی محاسبه شود که کسی قرار است کتابی را برگرداند، چه زمانی اشتراک باید تمدید شود، چند روز از اعلان گذشته است یا زمانی که رویداد جدیدی در راه است.
در این آموزش نگاهی به این خواهیم داشت چگونه تعداد روزهای بین تاریخ ها را در جاوا اسکریپت بدست آوریم.
این تاریخ شی در جاوا اسکریپت
یک جاوا اسکریپت Date
هست Number
کنهها (یا میلیثانیهها) که از ابتدای آن گذشته است عصر یونیکس (نیمه شب روی 1 ژانویه 1970، UTC).
حتی اگر در قلب، یک Date
شی بر حسب تعریف می شود UTC، همه روش های آن زمان و تاریخ را در منطقه زمانی محلی واکشی می کنند:
Date(); // Constructor for a new Date object
Date.now(); // Number of milliseconds elapsed since January 1, 1970 00:00:00 UTC
اکنون که با نحو آشنا شدیم، بیایید ببینیم چگونه می توان تعداد روزهای بین دو تاریخ را با استفاده از Date
شی در جاوا اسکریپت
تعداد روزهای بین تاریخ ها
برای بدست آوردن تعداد روزهای بین دو تاریخ، یک تابع ساده ایجاد می کنیم getNumberOfDays()
، که دو را می پذیرد Date
اشیاء:
function getNumberOfDays(start, end) {
const date1 = new Date(start);
const date2 = new Date(end);
// One day in milliseconds
const oneDay = 1000 * 60 * 60 * 24;
// Calculating the time difference between two dates
const diffInTime = date2.getTime() - date1.getTime();
// Calculating the no. of days between two dates
const diffInDays = Math.round(diffInTime / oneDay);
return diffInDays;
}
console.log(getNumberOfDays("2/1/2021", "3/1/2021"));
این کد نتیجه می دهد:
28
تابع دو مورد را می پذیرد String
s که نشان دهنده تاریخ هستند. ما ابتدا ایجاد می کنیم Date
اشیاء از این رشته ها، پس از آن، ما تعداد میلی ثانیه در یک روز را محاسبه می کنیم. این getTime()
تابع را برمی گرداند زمان در میلی ثانیه، بین شروع دوره یونیکس و زمان فعلی. بنابراین، اگر ما را کم کنیم start
تاریخ، از end
تاریخ، ما آن را دریافت می کنیم تعداد میلی ثانیه بین آنها.
سپس میتوانیم این تعداد میلیثانیهها را با تقسیم آن بر تعداد میلیثانیههای یک روز به روز تبدیل کنیم و تعداد روزهای بین دو تاریخ را به دست آوریم.
توجه داشته باشید: این رویکرد شامل start
تاریخ، اما مستثنی می کند را end
تاریخ.
دریافت تعداد روزهای بین تاریخ در جاوا اسکریپت با js-joda
توسعه دهندگانی که با جاوا آشنا هستند احتمالاً با موارد پرکاربرد آشنا هستند جودا-تایم کتابخانهای که قبل از بازسازی جاوا ۸ API تاریخ/زمان بسیار محبوب بود.
تأثیر Joda-Time الهام بخش ایجاد js-joda – یک کتابخانه تاریخ/زمان با هدف کلی برای جاوا اسکریپت، مبتنی بر روی سیستم تقویم ISO
یک مزیت اضافه این است که بسیار سبک و واقعا سریع است و در مقایسه با کتابخانه های دیگر مانند Moment.js یا date-utils
، به جای تکیه کردن، اجرای خود را از اشیاء تاریخ/زمان فراهم می کند روی را Date
کلاس از پیاده سازی بومی جاوا اسکریپت.
اجازه دهید import کتابخانه از طریق وانیلی جاوا اسکریپت:
<script
src="https://cdnjs.cloudflare.com/ajax/libs/js-joda/1.11.0/js-joda.min.js"
</script>
یا اگر از NPM استفاده می کنید:
$ npm install js-joda
در حال حاضر، ما می توانیم استفاده کنید js-joda
API. برای استفاده از تابع قبلی را بازنویسی می کنیم LocalDate
کلاس، با حسن نیت از js-joda
:
const JSJoda = require('js-joda');
const LocalDate = JSJoda.LocalDate;
function getNumberOfDays(start, end) {
const start_date = new LocalDate.parse(start);
const end_date = new LocalDate.parse(end);
return JSJoda.ChronoUnit.DAYS.between(start_date, end_date);
}
console.log(getNumberOfDays("2021-02-01", "2021-03-01"));
این نیز منجر به:
28
توجه داشته باشید: این رویکرد نیز منحصر به فرد است end_date
.
نتیجه
در این آموزش، روش بدست آوردن تعداد روزهای بین تاریخ ها در جاوا اسکریپت را بررسی کرده ایم. به غیر از رویکرد داخلی، با تکیه روی را Date
کلاس، ما همچنین آن را بررسی کرده ایم js-joda
کتابخانه ای که از جاوا محور الهام گرفته شده است جودا-تایم کتابخانه، برای یک رویکرد بسیار مختصرتر برای حل این مشکل.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1403-01-17 00:29:05