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

React.js中如何转换ISO时间格式?已尝试slice,需获取月份名称

问题2:拆分日期为31 Jan, 2023和时间为18:15:24

同样用Intl.DateTimeFormat分别处理日期和时间部分,代码如下:

格式化日期

const formatToDayMonthYear = (isoTime) => {
  const date = new Date(isoTime);
  return new Intl.DateTimeFormat('en-US', {
    day: 'numeric',
    month: 'short',
    year: 'numeric'
  }).format(date);
};

格式化时间(24小时制)

const formatToTime = (isoTime) => {
  const date = new Date(isoTime);
  return new Intl.DateTimeFormat('en-US', {
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: false // 改为true可切换为12小时制(带AM/PM)
  }).format(date);
};

在组件中使用

<td>{formatToDayMonthYear(object.time_date)}</td>
<td>{formatToTime(object.time_date)}</td>

如果一定要手动处理(不推荐,原生API更稳定),可以硬编码月份数组实现:

const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

// 手动格式化日期为31 Jan, 2023
const manualFormatDate = (isoTime) => {
  const date = new Date(isoTime);
  return `${date.getDate()} ${monthAbbrs[date.getMonth()]}, ${date.getFullYear()}`;
};

// 手动格式化时间为18:15:24(处理毫秒四舍五入)
const manualFormatTime = (isoTime) => {
  const date = new Date(isoTime);
  const hours = String(date.getUTCHours()).padStart(2, '0');
  const minutes = String(date.getUTCMinutes()).padStart(2, '0');
  const seconds = String(Math.round(date.getUTCSeconds() + date.getUTCMilliseconds() / 1000)).padStart(2, '0');
  return `${hours}:${minutes}:${seconds}`;
};

注意:手动处理需要自己处理时区、数字补零、月份索引(getMonth()返回0-11)等细节,容易出错,优先用原生API。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:05:47