Airbnb react-dates calendar with non-English locale

Airbnb react-dates calendar with non-English locale

我正在尝试将 airbnb react-dates 与非英语语言环境(波斯语)一起使用,一切正常,除了本月的第一天。

月份不是从波斯(Jalaali)日历的第一天开始到第 30 天,而是从当月的第 10 天开始,一直持续到下个月的第 10 天。

这个问题甚至存在于他们的 example 中。请问有什么办法可以解决这个问题

我一直在一个项目中处理这个问题,这个问题目前是 airbnb react-dates 中的一个开放问题。 为了解决这个问题,我分叉了原始项目,以便它与 jalali moment 一起工作,月份从正确的日期开始,link 到 github 和 npm 存储库是:

使用方法:

  • import momentJalali from 'moment-jalaali'

  • 在要使用日期选择器的组件的构造函数中设置适当的语言环境:

    momentJalali.locale('fa')

  • 从分叉的存储库导入日期选择器:

import {SingleDatePicker,DateRangePicker} from "react-dates-jalali";

  • 在渲染部分按以下方式使用 singdatepicker:

    <SingleDatePicker
          date={date} //momentDate if you have not set this property,it automatically sets to today
          focused={this.onFocusChange}//function change focused:open-close
          onFocusChange={.../function}
          showClearDate={true}
          required={true}
          isRTL={true}
          monthFormat={monthFormat}//for persian:'jMMMM jYYYY', for english :'MMMM YYYY'
          onDateChange={this.onDateChange}//function set your date Change
     />
    
  • 在渲染部分按以下方式使用日期范围选择器:

     <DateRangePicker
      startDate={startDate} //moment startDate if you have not set this property,it automatically sets to today
      endDate={endDate} //moment endDate
      onFocusChange={.../function}
      required={true}
      isRTL={true}
      onDatesChange={this.onDatesChange}//function set startDate and endDate
    focusedInput={focusedInput}//similar to airbnb api-open\close
    showClearDates={true}
      monthFormat={monthFormat}//for persian:'jMMMM jYYYY', for english :'MMMM YYYY'
       />
    

不用说,这个存储库支持这里没有提到的所有其他 airbnb react-dates api。

如果您的网站是多语言的,您也可以使用此存储库,并且您可以随时更改区域设置和月份格式。

我刚刚像这样导入了 momentlocale 并且成功了:

import moment from 'moment';
import 'moment/locale/pt-br';