توضیحات

اگر از نسخه های قبلی به نسخه ۲.۶.۰ بروزرسانی کرده باشید، در هنگام استفاده از انتخابگر زمان داخلی حتما متوجه اخطار نمایش داده شده در کنسول شده اید.

TimePicker داخلی از نسخه 3.0.0 به بالا حذف می شود، به دلیل اینکه تام پیکر مورد استفاده همه نیست و با حذف آن حدود ۲۰ درصد از حجم فایل اصلی کمتر میشود.

همچنین با تغییراتی که در این پلاگین اعمال کردم، حالا میتوان در حالت چند تایی و دامنه نیز از تایم پیکر استفاده کنید، در صورتی که تایم پیکر اصلی این قابلیت را نداشت.

چند مثال از نحوه استفاده از تایم پیکر در این قسمت آورده شده، پس من به جای نوشتن دوباره آن ها در اینجا، دو مثال از اضافه کردن تایم پیکر در حالت های چند تایی و دامنه را اضافه میکنم.

پراپ ها

پراپحالتپیش فرضتوضیحات
positionString"right"
disabledBooleanfalse
hideSecondsBooleanfalse
headerBooleantruepositions top/bottom: always false, positions right/left: default true
formatString"YYYY/MM/DD"

اگر تقویم در حالت چند گانه یا دامنه باشه و همچنین موقعیت انتخابگر زمانم راست یا چپ باشه، یک منو کشویی با فرمت پیش فرض (YYYY/MM/DD) به انتخابگر زمان اضافه می شه.

بنابراین اگر خواستید، می تونید فرمت منو رو با این پراپ تغییر بدید.

hStepNumber1
mStepNumber1
sStepNumber1

استفاده از Step برای آیکن ها

مرحله پیش‌فرض برای ساعت، دقیقه و ثانیه در انتخابگر زمان 1 است. با این حال، اگر می‌خواهید مقدار پیش‌فرض را تغییر دهید، می‌توانید آن را با استفاده از ویژگی‌های hStep، mStep و sStep تنظیم کنید. این ویژگی ها را می توان تغییر داد تا نیازهای خاص شما را برآورده کند. لطفاً مطمئن شوید که مقادیر hStep، mStep و sStep از نوع داده عددی هستند.

import React from "react";
import DatePicker from "react-multi-date-picker";
import TimePicker from "react-multi-date-picker/plugins/time_picker";
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
<DatePicker
  format="YYYY/MM/DD HH:mm:ss"
  plugins={[
    <TimePicker position="bottom" hStep={2} mStep={3} sStep={4}/>,
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

استفاده از انتخابگر زمان در حالت چندگانه

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

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

import React, { useState } from "react";
import DatePicker, { DateObject } from "react-multi-date-picker";
import TimePicker from "react-multi-date-picker/plugins/time_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 [values, setValues] = useState(
  [1, 2, 3].map((number) =>
    new DateObject({ calendar: "persian", locale: "fa"}).set({
      day: number,
      hour: number,
      minute: number,
      second: number,
    })
  )
);
.
.
.
<DatePicker
  value={values}
  onChange={setValues}
  format="YYYY/MM/DD HH:mm:ss"
  multiple
  plugins={[
    <TimePicker position="bottom" />,
    <DatePanel markFocused />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

Position Right

اگر نمی خواید از پنل تاریخ استفاده کنید، می تونید از همون انتخابگر زمان با موقعیت پیش فرض استفاده کنید و با منو کشویی داخلیش، تاریخ متمرکز رو تغییر بدید.

import React, { useState } from "react";
import DatePicker, { DateObject } from "react-multi-date-picker";
import TimePicker from "react-multi-date-picker/plugins/time_picker";
import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
const [values, setValues] = useState([
  new DateObject({ calendar: persian, locale: persian_fa }),
  new DateObject({ calendar: persian, locale: persian_fa }).add(1,"day")
]);
.
.
.
<Calendar
  value={values}
  onChange={setValues}
  multiple
  plugins={[<TimePicker />]}
/> 

استفاده از انتخابگر زمان در حالت دامنه

import React from "react";
import DatePicker from "react-multi-date-picker";
import TimePicker from "react-multi-date-picker/plugins/time_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
  format="YYYY/MM/DD HH:mm:ss"
  range
  plugins={[
    <TimePicker position="bottom" />,
    <DatePanel markFocused />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>

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

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

import persian from "react-date-object/calendars/persian"
import persian_fa from "react-date-object/locales/persian_fa"
.
.
.
<DatePicker
  format="MM/DD/YYYY HH:mm"
  plugins={[
    <TimePicker
      hideSeconds
      style={{ minWidth: "100px" }}
    />
  ]}
  calendar={persian}
  locale={persian_fa}
  calendarPosition="bottom-right"
/>