انتخابگر چندتایی

برای فعال شدن انتخاب چند زمان باید پراپرتی multiple رو برابر با true کنید.

فقط یادتون باشه که در حالت multiple و در متد onChange به جای یک date خاص ، آرایه ای از زمان ها رو دریافت میکنید، اگر هم میخواید مقادیری رو از قبل تعریف کنید اونهارو داخل آرایه قرار بدید.

من تو این مثال امروز و فردا رو داخل آرایه قرار میدم تا ببینید چجوری میشه بعد تو پروژه خودتون تغییرش بدید یا حذفش کنید.

import { useState } from "react"
import DatePicker from "react-multi-date-picker"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"

export default function Example() {
  const [values, setValues] = useState([
    new DateObject({ calendar: persian, locale: persian_fa }) //امروز,
    new DateObject({ calendar: persian, locale: persian_fa }).add(1, "day") //فردا
  ])

  return (
    <DatePicker 
      multiple
      value={values} 
      onChange={setValues}
      calendar={persian}
      locale={persian_fa}
      calendarPosition="bottom-right"
    />
  )
}

جداکننده سفارشی

مقدار پیش فرض پراپ dataSeparator در حالت چندگانه '، ' است

<DatePicker 
  multiple 
  dateSeparator=" & " 
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

پنل تاریخ ها

اگر خواستید حالت multiple یا range رو فعال کنید ، میتونید از پلاگین DatePanel هم استفاده کنید تا لیست تاریخ هارو هم داشته باشید.

برای مشاهده لیست تاریخ ها باید پلاگین DatePanel رو import کنید:

import DatePicker from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
<DatePicker
  multiple
  plugins={[
   <DatePanel position="left" />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

مرتب سازی تاریخ ها

در این مثال ، تاریخ هایی با type های مختلف به عنوان مقدار اولیه در نظر گرفته شده و با استفاده از ویژگی sort مرتب شده اند.

import DatePicker from "react-multi-date-picker"
import DatePanel from "react-multi-date-picker/plugins/date_panel"
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [dates, setDates] = useState([
  new DateObject({ calendar: persian, date: new Date() }),
  new DateObject({ calendar: persian, year: 1399, month: 9, day: 8 }),
  new DateObject({ calendar: persian, date: "13 Shahrivar 1399", format: "DD MMMM YYYY" }),
  new DateObject({ calendar: persian, date: 1597994736000 }) //زمان یونیکس با احتساب میلی ثانیه (21 آگوست 2020)
])
.
.
.
<DatePicker
  value={dates}
  onChange={setDates}
  format="MMMM DD YYYY"
  sort
  plugins={[
    <DatePanel position="left" />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

انتخابگر چندتایی ماه ها

<DatePicker
  onlyMonthPicker
  multiple
  sort
  plugins={[
    <DatePanel />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

انتخابگر چندتایی سال ها

<DatePicker
  onlyYearPicker
  multiple
  sort
  plugins={[
    <DatePanel />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>