FullCalendar v6 React 日期与时间格式调整问题求助
FullCalendar v6 React 日期与时间格式调整问题求助
嘿,我来帮你搞定FullCalendar v6 React里的日期和时间格式调整问题!你遇到的两个痛点——时间从12小时制转带前导零的24小时制,日期从月/日转成日/月并补零,其实都可以通过FullCalendar的内置配置项解决,咱们一步步来:
一、时间格式调整:把9am→09:00,10am→10:00
你提到已经用到了eventTimeFormat,但可能没配置对参数。要实现24小时制带前导零的格式,需要同时配置两个关键位置:
- 事件里的时间显示:用
eventTimeFormat设置小时为两位数字,关闭12小时制 - 时间槽的标签显示(比如周视图左侧的小时列):用
slotLabelFormat做同样的配置
具体代码配置:
eventTimeFormat={{ hour: '2-digit', minute: '2-digit', hour12: false }} slotLabelFormat={{ hour: '2-digit', minute: '2-digit', hour12: false }}
这样配置后,9am就会变成09:00,10am变成10:00,不管是事件上的时间还是时间槽的标签都能生效。
二、日期格式调整:把6/1→01/06,6/2→02/06(表头+事件)
这个需要覆盖三个关键位置的配置,确保表头和事件里的日期都符合要求:
- 表头标题的日期(比如月视图顶部的日期栏):用
titleFormat指定日在前、月在后的两位数字格式 - 日期单元格的显示(比如月视图里每个小格子的日期):用
dayCellFormat设置同样的日/月格式 - 事件里的日期显示:如果需要在事件上展示日期,推荐用
eventContent自定义渲染,这样能完全控制格式
具体代码配置:
// 表头标题的日期格式(示例:"01/06 - 30/06 2024") titleFormat={{ day: '2-digit', month: '2-digit', year: 'numeric', separator: ' - ' }} // 月视图每个日期单元格的日期(示例:"01/06") dayCellFormat={{ day: '2-digit', month: '2-digit', separator: '/' }} // 自定义事件内容,同时显示日期和时间 eventContent={({ event, timeText }) => { // 用toLocaleDateString生成日/月的两位数字格式 const formattedDate = new Date(event.start).toLocaleDateString('en-GB', { day: '2-digit', month: '2-digit' }); return ( <div className="fc-event-content"> <div>{formattedDate}</div> <div>{timeText}</div> </div> ); }}
这样配置后,原来的6/1(6月1日)就会变成01/06,不管是表头还是事件里的日期都能统一格式啦。
如果你的视图类型是周视图或者日视图,只需要调整对应的配置项就行,核心的格式规则是一致的。要是还有细节没搞定,随时补充说明哦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

