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

Laravel中如何将数据库updated_at格式化为日-月-年 时分秒

实现方法

方法一:原生JavaScript实现(无需额外依赖)

直接用原生Date对象解析ISO格式字符串,手动拼接成目标格式,重点处理月份的英文全称:

function formatDateTime(isoString) {
    const date = new Date(isoString);
    // 补零处理日期、时分秒
    const day = String(date.getDate()).padStart(2, '0');
    // 获取月份英文全称(getMonth()返回0-11,对应1-12月)
    const month = date.toLocaleString('en-US', { month: 'long' });
    const year = date.getFullYear();
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    const seconds = String(date.getSeconds()).padStart(2, '0');
    
    return `${day}-${month}-${year} ${hours}:${minutes}:${seconds}`;
}

// 调用示例
const originalUpdatedAt = '2022-12-20T13:20:51.000000Z';
const formattedDateTime = formatDateTime(originalUpdatedAt);
// 输出示例:20-December-2022 13:20:51(结果随本地时区变化)

如果需要强制使用UTC时间而非本地时区,把getDate()、getHours()等方法替换为getUTCDate()、getUTCHours()即可。

方法二:使用Moment.js(简洁高效,适合已有依赖的项目)

如果你的Laravel项目已经引入Moment.js(常见于通过npm或CDN引入的场景),可以直接用它的格式化能力快速实现:

// 引入Moment后直接调用
const originalUpdatedAt = '2022-12-20T13:20:51.000000Z';
// 格式规则:DD=两位日期,MMMM=月份全称,YYYY=四位年份,HH=24小时制小时,mm=分钟,ss=秒
const formattedDateTime = moment(originalUpdatedAt).format('DD-MMMM-YYYY HH:mm:ss');
// 输出示例:20-December-2022 13:20:51

// 若需转换为本地时区,可先解析UTC时间再转本地:
const formattedLocalTime = moment.utc(originalUpdatedAt).local().format('DD-MMMM-YYYY HH:mm:ss');

补充说明

  • 原生方法无需额外依赖,适合轻量场景;Moment.js代码更简洁,处理时区、日期边缘情况的稳定性更强。
  • 原生方法中通过toLocaleString('en-US')确保月份输出为英文全称,避免受系统语言环境影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:25:57