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

MUI5 MobileDateTimePicker自定义弹窗样式及完整日期时间显示问题

MUI X MobileDateTimePicker 弹窗样式修改与日期格式修复(v6.9.2)

弹窗样式不生效的修复

直接在组件sx中设置弹窗内的类名无效,因为弹窗通过Portal挂载到DOM根节点,不在组件自身DOM层级下。需通过slotProps针对弹窗内的目标组件注入样式:

<MobileDateTimePicker
  label="End DateTime"
  inputRef={ref}
  minDate={subDays(new Date(), 90)}
  disableFuture
  {...field}
  views={["day", "hours", "minutes"]}
  slotProps={{
    // 针对工具栏(Toolbar)设置样式
    toolbar: {
      sx: {
        "& .MuiPickersToolbarText-root.Mui-selected": {
          color: "#fff",
          backgroundColor: "#e91e63",
          fontWeight: 600,
          transition: "background-color 250ms cubic-bezier(0.4, 0, 0.2, 1)",
          borderRadius: "50%",
          fontSize: "0.75rem",
          width: "36px",
          height: "36px",
          display: "inline-flex",
          alignItems: "center",
          justifyContent: "center",
        },
        "& .MuiDateTimePickerToolbar-separator": {
          display: "inline-flex",
          alignItems: "center",
          justifyContent: "center",
        },
      },
    },
    // 如需修改弹窗容器样式,可添加popper的配置
    popper: {
      sx: {
        // 自定义弹窗容器样式
      },
    },
  }}
/>

若要修改弹窗内其他区域(如日期选择面板、时间选择器),可对应使用dayPicker、timePicker等slot的sx属性。

输入框完整显示日期时间的设置

配置views={["day", "hours", "minutes"]}后,默认格式仅展示选中视图的内容,需手动指定format属性定义完整格式:

<MobileDateTimePicker
  // 其他属性保持不变
  format="yyyy-MM-dd HH:mm" // 按需调整格式,例如"MM/dd/yyyy hh:mm a"(12小时制带AM/PM)
/>

格式占位符规则:yyyy为4位年份,MM为2位月份,dd为2位日期,HH为24小时制小时,hh为12小时制小时,mm为分钟,a为AM/PM标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:42:40