You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MUI X Jalali日期选择器的月份缩写改为全称?

解决MUI X Jalali日期选择器显示完整月份名称的问题

要将Jalali日期选择器的月份从缩写改为全称,你需要通过配置LocalizationProvider的locale属性指定完整的月份名称数组,具体操作如下:

  1. 导入波斯语本地化配置
    先导入MUI X提供的波斯语本地化对象:

    import { faIR } from '@mui/x-date-pickers/locales';
    
  2. 修改LocalizationProvider的locale配置
    在LocalizationProvider中传入自定义locale,覆盖月份显示为全称:

    <LocalizationProvider 
      dateAdapter={AdapterJalali}
      locale={{
        ...faIR,
        // 替换为Jalali完整月份名称数组
        month: {
          full: ["فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"]
        }
      }}
    >
      <DatePicker
        // 原有属性保持不变
        PopperProps={{ sx: popperSx }}
        open={isForcePickerOpen}
        onClose={() => setIsOpen(false)}
        components={{ OpenPickerIcon: "a" }}
        className="relative"
        disableFuture
        label="Responsive"
        minDate={minDate ? moment(minDate, "MM-DD-YYYY").toDate() : undefined}
        maxDate={maxDate ? moment(maxDate, "MM-DD-YYYY").toDate() : undefined}
        openTo="year"
        views={views}
        value={value}
        onChange={onChange}
        renderInput={({ inputRef, inputProps, InputProps }) => (
          // 原有renderInput内容保持不变
          <div
            variant="outlined"
            color="primary"
            onTouchStart={() => setIsOpen((isOpen) => !isOpen)}
            onClick={() => setIsOpen((isOpen) => !isOpen)}
            ref={inputRef}
            {...inputProps}
            className="relative flex flex-row justify-between p-2 h-14 items-center text-immigoTextGray
                       border-1 border-gray-400 w-full rounded-lg  "
          >
            <input
              readOnly
              className="absolute disabled -z-30"
              disabled
              hidden
            />
            <span className="font-dana-regular text-xs">{label}</span>
            <span className=" px-2 font-dana-regular text-base text-gray-800">
              {faData}
            </span>
            <CalendarMonthIcon />
          </div>
        )}
      />
    </LocalizationProvider>
    

原理说明

MUI X日期选择器通过locale对象的month.full字段获取完整月份名称,month.short对应缩写版本。手动覆盖month.full数组,就能强制组件显示全称月份。

如果导入的faIR本地化对象本身已包含完整月份名称,也可以直接传入locale={faIR},无需手动覆盖month字段——但如果默认显示缩写,说明默认配置使用了short字段,此时手动指定full数组是更可靠的方案。

内容的提问来源于stack exchange,提问作者ne.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:01:42