خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه مدیریت تاریخ و زمان در React با استفاده از Day.js

کتابخانه Day.js مدیریت عملیات تاریخ و زمان را در برنامه‌های React آسان می‌کند.

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

Day.js یک کتابخانه سبک وزن برای تجزیه، اعتبارسنجی، دستکاری و قالب بندی تاریخ و زمان در جاوا اسکریپت است.

نصب Day.js

کتابخانه Day.js یک جایگزین مدرن برای Moment.js است که کتابخانه دیگری است که برای مدیریت تاریخ و زمان استفاده می شود. Day.js یک API مشابه با ردپای کوچکتر و عملکرد سریعتر ارائه می دهد.

برای استفاده از Day.js در برنامه React خود، ابتدا باید آن را نصب کنید. با اجرای دستور زیر در ترمینال خود می توانید این کار را انجام دهید:

npm install dayjs

تجزیه و قالب بندی تاریخ و زمان

Day.js یک API ساده برای تجزیه و قالب بندی تاریخ ها ارائه می دهد. می توانید تاریخ و زمان را با استفاده از متد ()dayjs دریافت کنید، اما ابتدا باید آن را از کتابخانه Day.js وارد کنید.

مثلا:

import React from 'react';
import dayjs from 'dayjs';

function App() {

  const date = dayjs();
  console.log(date);

  return (
    <div>
      <p>Date and Time Management</p>
    </div>
  )
}

export default App

متد ()dayjs یک شی Day.js جدید ایجاد می کند که تاریخ و زمان خاصی را نشان می دهد. در مثال بالا، متد dayjs() یک شی Day.js ایجاد می کند که تاریخ و زمان فعلی را نشان می دهد.

در کنسول شما، شی Day.js به شکل زیر است:

گزارش کنسول شیء day.js

متد ()dayjs آرگومان تاریخ اختیاری را می‌پذیرد که می‌تواند یک رشته، یک عدد (مهر زمانی یونیکس)، یک شیء تاریخ جاوا اسکریپت یا یک شیء Day.js دیگر باشد. متد یک شی Day.js تولید می کند که آرگومان تاریخ مشخص شده را نشان می دهد.

مطلب مرتبط:   نحوه استفاده از LocalStorage در جاوا اسکریپت

مثلا:

import React from 'react';
import dayjs from 'dayjs';

function App() {

  const date = dayjs('2023-05-01');
  console.log(date); // Day.js object representing the date specified

  const unixDate = dayjs(1651382400000);
  console.log(unixDate); // Day.js object representing the date specified

  return (
    <div>
      <p>Date and Time Management</p>
    </div>
  )
}

export default App

خروجی شی Day.js از این بلوک کد مشابه بلوک کد قبلی خواهد بود اما مقادیر ویژگی های متفاوتی خواهد داشت.

برای نمایش تاریخ های تولید شده به عنوان اشیاء Day.js، باید از متد ()format استفاده کنید. متد format() کتابخانه Day.js به شما این امکان را می دهد که شی Day.js را به عنوان یک رشته با توجه به رشته فرمت خاصی قالب بندی کنید.

متد یک رشته قالب را به عنوان آرگومان خود می گیرد. آرگومان رشته می تواند شامل ترکیبی از حروف و کاراکترهای خاص باشد که هر کدام معنای خاصی دارند.

مثلا:

import React from 'react';
import dayjs from 'dayjs';

function App() {

  const date = dayjs('2023-05-01').format('dddd, MMMM D, YYYY'); // Monday, May 1, 2023
  const time = dayjs().format('HH:mm:ss'); //09:50:23
  const unixDate = dayjs(1651382400000).format('MM/DD/YY'); // 05/01/22

  return (
    <div>
      <p>{date}</p>
      <p>{unixDate}</p>
     <p>{time}</p>
    </div>
  )
}

export default App

متغیر تاریخ تاریخ را در این قالب “چهارشنبه، 26 آوریل 2023” نمایش می دهد. رشته قالب “dddd، MMMM D، YYYY” است که در آن dddd روز هفته، MMMM ماه در کلمات، D روز ماه در یک یا دو رقم، و YYYY سال در چهار رقم است.

متغیر unixDate با استفاده از رشته فرمت «MM/DD/YYYY» که ماه را در دو رقم، روز ماه را با دو رقم و سال را با چهار رقم نشان می دهد، به صورت رشته ای قالب بندی می شود.

متغیر زمان زمان جاری را در قالب مشخص شده نمایش می دهد. رشته قالب “HH:mm:ss” است که در آن HH نشان دهنده ساعت، mm نشان دهنده دقیقه، و ss نشان دهنده ثانیه است.

مطلب مرتبط:   چگونه با Framer Motion انیمیشن ها را به برنامه های React خود اضافه کنید

دستکاری تاریخ و زمان

Day.js چندین روش ارائه می دهد که دستکاری تاریخ و زمان را آسان می کند. برای دریافت لیست کامل روش های موجود برای دستکاری تاریخ ها و زمان ها می توانید به اسناد رسمی Day.js مراجعه کنید.

مثلا:

import React from 'react';
import dayjs from 'dayjs';

function App() {

  const date = dayjs().add(7,'days').format('dddd, MMMM D, YYYY'); // Wednesday, June 16, 2023
  const time = dayjs().subtract(2, 'hours').format('HH:mm:ss'); // 07:53:00

  return (
    <div>
      <p>{date}</p>
      <p>{time}</p>
    </div>
  )
}

export default App

بلوک کد بالا از متد add() برای اضافه کردن 7 روز به تاریخ جاری استفاده می کند. متد add() به شما امکان می دهد مدت زمان مشخصی را به یک شی Day.js اضافه کنید. این روش دو آرگومان دارد، مقدار زمان برای جمع کردن اعداد و واحد زمان برای جمع.

با متد subtract() می توانید مدت زمان مشخصی را از شی Day.js کم کنید. متغیر زمان با استفاده از روش subtract() 2 ساعت از زمان فعلی کم می کند.

نمایش زمان نسبی

Day.js چندین روش از جمله fromNow()، toNow()، to() و from() را برای نمایش زمان نسبی ارائه می دهد، مانند “2 ساعت پیش” یا “در 3 روز”. برای استفاده از این روش ها، افزونه relativeTime را از dayjs/plugin/relativeTime در برنامه React خود وارد کنید.

مثلا:

import React from 'react';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';

function App() {

  dayjs.extend(relativeTime);
  
  const date = dayjs().add(7, 'days')
  const relativeDate = date.fromNow(); // in 7 days

  const date2 = dayjs().subtract(2, 'hours');
  const relativeDate2 = date2.toNow(); // in 2 hours

  const lastYear = dayjs().subtract(1, 'year');
  const diff = date.from(lastYear); // in a year
  const diff2 = date.to(lastYear) // a year ago

  return (
    <div>
      <p>{ relativeDate }</p>
      <p>{ relativeDate2 }</p>
      <p>{ diff }</p>
      <p>{ diff2 }</p>
    </div>
  )
}

export default App

تابع fromNow() یک رشته زمانی نسبی را نشان می دهد که تفاوت بین زمان فعلی و تاریخ مشخص شده را نشان می دهد. در این مثال، fromNow() تفاوت بین تاریخ و زمان فعلی را نشان می دهد.

مطلب مرتبط:   نحوه ادغام احراز هویت گوگل در برنامه های Next.js با استفاده از NextAuth

تابع toNow () شبیه تابع fromNow () است که رشته ای را نشان می دهد که تفاوت بین تاریخ مشخص شده و زمان فعلی را نشان می دهد. وقتی تابع toNow() را فرا می‌خوانید، یک رشته زمانی نسبی را به زمان فعلی برمی‌گرداند.

در نهایت، با استفاده از توابع from() و to()، می توانید یک رشته زمانی نسبی را نشان دهید که تفاوت بین دو تاریخ مشخص شده را نشان می دهد. در این مثال، تفاوت بین lastYear و date را با استفاده از توابع from() و to() دریافت می کنید.

توجه داشته باشید، شما همچنین می توانید یک آرگومان بولی اختیاری را به متدهای fromNow()، toNow()، from() و to() ارسال کنید تا مشخص کنید که آیا پسوند را شامل یا حذف کنید (به عنوان مثال “ago” یا “in”).

مثلا:

const date = dayjs().add(7, 'days')
const relativeDate = date.fromNow(true); // 7 days

const date2 = dayjs().subtract(2, 'hours');
const relativeDate2 = date2.toNow(true); // 2 hours

const lastYear = dayjs().subtract(1, 'year');
const diff = date.from(lastYear, true) // a year
const diff2 = date.to(lastYear, true) // a year

ارسال false به آرگومان، تاریخ ها را با پسوند نمایش می دهد.

مدیریت موثر تاریخ و زمان

مدیریت تاریخ و زمان یکی از جنبه های حیاتی هر برنامه کاربردی است و Day.js کتابخانه ای با کاربری آسان و انعطاف پذیر برای مدیریت این عملیات در یک برنامه React فراهم می کند. با گنجاندن Day.js در پروژه خود، می توانید به راحتی تاریخ ها و زمان ها را قالب بندی کنید، رشته ها را تجزیه کنید و مدت زمان را دستکاری کنید.

علاوه بر این، Day.js طیف وسیعی از پلاگین ها را برای گسترش عملکرد و قدرتمندتر کردن آن ارائه می دهد. چه در حال ساخت یک تقویم ساده یا یک سیستم برنامه ریزی پیچیده باشید، Day.js یک انتخاب عالی برای مدیریت تاریخ و زمان در برنامه React شما است.