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

Material UI:如何修改TimePicker时间选择器的AM/PM按钮背景色?

修改Material UI DatePicker时间选择器AM/PM按钮颜色的解决方案

你当前的自定义样式只对输入框区域生效,是因为DateTextField基于TextField创建,样式作用域仅限于输入组件本身,而时间选择器的对话框是独立的弹出层,其中的AM/PM按钮属于ClockPicker组件的一部分,不在TextField的样式覆盖范围内。

下面提供两种可行的解决方法:

方法一:直接在DateTimePicker上定制对话框内样式

通过CssDateTimePicker的sx属性,直接定位对话框内的AM/PM按钮类名进行样式覆盖:

<FastField
  component={CssDateTimePicker}
  label='Start Date*'
  name='start_at'
  id='start_at'
  format={"MM/DD/YYYY"}
  color="primary"
  value={values.start_at}
  minDateTime={new Date()}
  onChange={(newValue) => {
    if (errors.start_at) {
      setFieldTouched("start_at", true)
    }
    setFieldValue("start_at", newValue);
  }}
  inputProps={{ readOnly: true }}
  disablePast={true}
  // 新增sx属性覆盖AM/PM按钮样式
  sx={{
    '& .MuiClockPicker-ampmButton': {
      color: '#fff', // 未选中状态的文字颜色
      '&.Mui-selected': {
        color: '#1976d2', // 选中状态的文字颜色
      },
      '&:hover': {
        backgroundColor: 'rgba(255,255,255,0.1)', // 鼠标悬停背景色
      }
    }
  }}
  renderInput={(params) => (
    <DateTextField
      {...params}
      autoComplete={"Off"}
      size='small'
    />
  )}
/>

方法二:通过主题全局重写样式

如果需要所有DatePicker的AM/PM按钮都应用该样式,可以通过自定义主题的components配置全局覆盖:

import { createTheme, ThemeProvider } from '@mui/material/styles';

const customTheme = createTheme({
  components: {
    MuiClockPicker: {
      styleOverrides: {
        ampmButton: {
          color: '#fff',
          '&.Mui-selected': {
            color: '#1976d2',
          },
        },
      },
    },
  },
});

// 用ThemeProvider包裹你的组件树
<ThemeProvider theme={customTheme}>
  <LocalizationProvider dateAdapter={AdapterDateFns}>
    <FastField
      // 你的DatePicker属性保持不变
    />
  </LocalizationProvider>
</ThemeProvider>

注意事项

  • 确认Material UI版本对应的类名正确,MUI v5中AM/PM按钮的类名是MuiClockPicker-ampmButton,若使用旧版本需调整类名。
  • 如果CssDateTimePicker是自定义封装的组件,需确保它正确传递sx属性给底层的官方DateTimePicker组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:27:35