如何配置Strapi 4版本管理面板中的日期格式?
Strapi 4管理面板日期格式修改为YYYY-MM-DD HH:MM的可行方案
以下是几种适配Strapi 4版本的替代方案:
方案一:通过Admin扩展覆盖日期格式化函数(推荐)
该方式无需修改核心代码,Strapi升级时影响较小:
- 在项目根目录创建
src/admin/extensions文件夹(不存在则新建) - 新建
src/admin/extensions/date-formatter.js文件,写入代码:
import moment from 'moment'; // 自定义日期格式化逻辑 const customFormatDate = (date) => { if (!date) return ''; return moment(date).format('YYYY-MM-DD HH:mm'); }; // 覆盖Strapi默认的日期格式化钩子 strapi.registerHook('admin.utils.format-date', () => customFormatDate);
- 修改
src/admin/app.js,引入上述扩展:
import './extensions/date-formatter'; export default { config: { // 保留原有的admin配置(如logo、导航等) }, bootstrap(app) { // 可添加其他启动逻辑 }, };
- 若项目未安装moment,执行安装命令:
npm install moment --save-dev
- 重新构建Admin面板并启动项目:
npm run build npm run develop
方案二:自定义插件替换日期显示组件
适合需要更灵活定制的场景:
- 参考Strapi官方插件开发文档创建自定义插件,在插件的
admin/src/components目录下新建CustomDateDisplay.js:
import React from 'react'; import moment from 'moment'; const CustomDateDisplay = ({ value }) => { return <span>{moment(value).format('YYYY-MM-DD HH:mm')}</span>; }; export default CustomDateDisplay;
- 在插件的
admin/src/index.js中注册组件,替换默认的日期显示组件:
import CustomDateDisplay from './components/CustomDateDisplay'; export default { register(app) { app.component('DateDisplay', CustomDateDisplay); }, };
- 在项目的
config/plugins.js中启用该插件,重新构建Admin面板即可生效。
方案三:修改Strapi核心代码(不推荐)
此方法会在Strapi升级时被覆盖,仅适合临时应急:
- 找到
node_modules/@strapi/admin/src/utils/formatDate.js文件 - 修改文件中的格式化规则,将原有格式替换为
YYYY-MM-DD HH:mm - 重新构建Admin面板:
npm run build
内容的提问来源于stack exchange,提问作者Ivonet
相关产品推荐
相关产品推荐

