如何在JavaScript中将ISO格式会议开始时间转为MM/DD/YYYY格式
解决方案:将ISO日期转换为MM/DD/YYYY格式
针对你从接口获取的ISO格式日期(如2022-07-09T02:01:19),不需要用繁琐的正则,下面两种简单方法可以快速转成MM/DD/YYYY格式:
方法一:原生JavaScript Date API(无额外依赖)
直接利用浏览器原生的Date对象解析日期,再提取月、日、年进行格式化:
// 假设axios请求返回的响应数据为meetingData const meetingData = await axios.get('/your-api-url').then(res => res.data); // 解析日期 const startDate = new Date(meetingData.meeting_start_time); // 处理月份(注意Date的月份是0-11,需+1),不足两位补零 const month = String(startDate.getMonth() + 1).padStart(2, '0'); // 处理日期,不足两位补零 const day = String(startDate.getDate()).padStart(2, '0'); const year = startDate.getFullYear(); // 拼接成MM/DD/YYYY格式 const formattedStartTime = `${month}/${day}/${year}`; // 存入状态供AntD Calendar使用 setFormattedMeetingTime(formattedStartTime);
方法二:使用dayjs库(更简洁高效)
如果项目里可以引入轻量日期库,推荐用dayjs(体积仅2KB左右),它的格式化API非常直观,无需手动处理补零和月份偏移问题:
- 先安装dayjs:
npm install dayjs # 或 yarn add dayjs
- 在组件中使用:
import dayjs from 'dayjs'; // 获取接口数据 const meetingData = await axios.get('/your-api-url').then(res => res.data); // 一行完成格式化 const formattedStartTime = dayjs(meetingData.meeting_start_time).format('MM/DD/YYYY'); // 存入状态 setFormattedMeetingTime(formattedStartTime);
两种方法都能得到符合要求的格式(比如示例中的2022-07-09T02:01:19会被转成07/09/2022),直接传给AntD Calendar组件即可渲染事件。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

