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

如何不依赖date-fns运行Material UI DateTime Picker示例?

嘿,我来帮你搞定这个Material UI DateTime Picker的问题!完全可以不用date-fns就能让示例正常运行,Material UI的日期选择器支持多种日期库适配器,下面是具体的解决方案:

不用date-fns运行Material UI DateTime Picker的步骤

1. 选择替代的日期库适配器

你有两个常用的靠谱选项:

  • Moment.js适配器:适配老牌日期处理库moment.js
  • Luxon适配器:适配更现代的日期库luxon

2. 安装对应依赖并修改代码

方案一:使用Moment.js

首先安装所需依赖(注意版本兼容,如果你用的是Material UI v5,建议选@date-io/moment@^2.11.0左右的版本):

npm install moment @date-io/moment@2.11.0
# 或者用yarn
yarn add moment @date-io/moment@2.11.0

然后把原来的date-fns导入替换成moment的适配器:

// 替换掉原来的 import DateFnsUtils from '@date-io/date-fns';
import MomentUtils from '@date-io/moment';

最后在DateTimePicker组件中指定使用这个适配器:

<DateTimePicker
  utils={MomentUtils}
  // 你的其他组件props,比如label、value、onChange等
/>

方案二:使用Luxon

同样先安装依赖(v5适配版本建议选@date-io/luxon@^2.11.0):

npm install luxon @date-io/luxon@2.11.0
# 或者yarn
yarn add luxon @date-io/luxon@2.11.0

替换导入语句:

// 替换原date-fns导入
import LuxonUtils from '@date-io/luxon';

组件中使用:

<DateTimePicker
  utils={LuxonUtils}
  // 你的其他组件props
/>

顺便说下你之前的date-fns报错原因

看你的package.json,@types/date-ioDate-fns明显是拼写错误,正确的应该是@types/date-io-date-fns;另外date-fns": "next"是开发尝鲜版,可能和@date-io/date-fns的latest版本不兼容,这也是导致找不到模块的原因之一。如果之后还是想用date-fns,建议把date-fns换成稳定版(比如^2.30.0),并修正类型包的拼写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:58:14