vxe-gantt 如何自定义日期格式

18 阅读2分钟

vxe-gantt 如何自定义日期格式 在实际项目中,不同地区或业务场景对日期显示格式有不同要求。例如,中国常用 yyyy-MM-dd,欧洲常用 dd/MM/yyyy,美国常用 MM/dd/yyyy,有时还需要精确到时分秒。vxe-gantt 提供了灵活的日期格式配置,只需简单设置即可满足各种格式需求。

用法

支持字符串日期格式自定义,通过 task-config.dateFormat='yyyy-MM-dd HH:mm:ss' 来设置

image

<template>
  <div>
    <vxe-gantt v-bind="ganttOptions"></vxe-gantt>
  </div>
</template>

<script setup>
import { reactive } from 'vue'
const ganttOptions = reactive({
  taskConfig: {
    dateFormat: 'dd/MM/yyyy'   // 设置日期格式为 日/月/年
  },
  columns: [
    { field: 'title', title: '任务名称' },
    { field: 'start', title: '开始时间', width: 100 },
    { field: 'end', title: '结束时间', width: 100 }
  ],
  data: [
    { id: 10001, title: 'A项目', start: '03/03/2024', end: '04/03/2024', progress: 3 },
    { id: 10002, title: '城市道路修理进度', start: '04/03/2024', end: '08/03/2024', progress: 10 },
    { id: 10003, title: 'B大工程', start: '08/03/2024', end: '12/03/2024', progress: 90 },
    { id: 10004, title: '超级大工程', start: '14/03/2024', end: '19/03/2024', progress: 15 },
    { id: 10005, title: '地球净化项目', start: '10/03/2024', end: '17/03/2024', progress: 100 }
  ]
})

</script>

支持的日期格式占位符

vxe-gantt 内部基于日期处理库,支持以下常用占位符:

占位符说明示例值
yyyy四位年份2024
yy两位年份24
MM月份(两位)03
M月份(不补零)3
dd日期(两位)09
d日期(不补零)9
HH24小时制小时(两位)14
H24小时制小时(不补零)14
hh12小时制小时(两位)02
h12小时制小时(不补零)2
mm分钟(两位)05
m分钟(不补零)5
ss秒(两位)08
s秒(不补零)8

说明

* 数据格式必须与配置保持一致:设置 dateFormat 后,data 中的 start、end 字段必须使用相同的格式字符串,否则组件无法正确解析日期。
* 全局生效:该配置影响甘特图中所有日期字段的显示和内部计算(包括任务条拖拽、依赖线更新等)。
* 动态修改:如果需要动态切换日期格式,可以修改 ganttOptions.taskConfig.dateFormat 并重新赋值,组件会响应变化。
* 与列模板的关系:如果 columns 中单独为某个日期列设置了 formatter,该列的显示会以 formatter 为准,不会受 dateFormat 影响。

gantt.vxeui.com