JavaScript时间格式化技巧:内置方法与自定义函数

Jasper
Jasper
发布时间:2026-10-14| 3人浏览过
原创

在Web开发中,将时间戳或Date对象转换为可读的日期格式是常见需求。本文将总结JavaScript中利用内置API快速格式化日期的方法,并提供一个可扩展的自定义格式化函数解决方案。

使用Date对象内置方法格式化

JavaScript的原生 Date 对象提供了一系列用于转换日期和时间的成员方法。这些方法直接返回字符串或ISO标准格式的对象,适合大多数标准化场景。

第1步:获取基础时间与日期字符串

创建实例后,可以直接通过以下方法获取不同层面的信息:

  • toString():toTimeString() 获取完整的时间字符串。
  • toDateString():仅获取日期部分(年-月-日),例如 “Mon Nov 04 2013”。
  • toLocaleString():toLocaleDateString() 获取本地化的日期和时间格式,结果受运行环境语言设置影响。

第2步:生成标准网络协议格式

当需要与国际系统对接时,应优先使用标准化的输出格式:

  1. toUTCString() 或 toGMTString():转换为格林威治标准时间 (GMT)。
  2. toISOString() 或 toJSON():遵循 ISO 8601 国际标准格式(带 Z 后缀的 UTC 时间)。这是目前前后端数据交互中最推荐的格式。

实现自定义日期格式化函数

内置方法虽然功能全面,但有时难以精确满足特定的展示样式(例如强制要求 yyyy-MM-dd HH:mm:ss 且无前导零限制等复杂逻辑)。通过在 Date.prototype 上添加 format 方法,可以灵活定义替换规则。

第3步:重写并调用format原型方法

核心思路是利用正则表达式匹配字符串中的占位符(如 y+, M+, d+),并将其替换为 Date 对象对应的具体数值。代码实现如下:

Date.prototype.format = function(format) {
    var date = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        "S+": this.getMilliseconds()
    };
    if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1
                ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
        }
    }
    return format;
};
// 示例用法
var d = new Date().format('yyyy-MM-dd');
console.log(d); // 输出类似:2013-11-04

该函数首先构建包含月、日、时、分、秒等字段的字典 date。接着使用正则判断年份并进行特殊处理(因为getFullYear返回四位数字,而模板可能只写了yy或yyyy)。最后遍历所有字段进行全局替换,确保不足两位的数字自动补零。

总结

对于简单的国际化或标准接口调用,直接使用 toISOString 或 toLocaleString 最为稳妥。若需在前端页面展示高度定制化的时间样式,通过原型链扩展 format 方法是一种轻量级且高效的解决方案。以上就是JavaScript格式化日期时间的方法和自定义格式化函数示例的详细内容,更多关于JavaScript日期处理技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。