Javascript日期格式化指定格式的字符串实现

简介: 代码部分TypeScript 1 /** 2 * format a Date object 3 * 将 Date 转化为指定格式的String 4 * @param {Date} date 源日期对象 5 * @param {string...

代码部分

TypeScript

 1   /**
 2      * format a Date object 
 3      * 将 Date 转化为指定格式的String
 4      * @param {Date} date 源日期对象
 5      * @param {string} pattern 匹配模式
 6      * @returns {string} 格式化结果
 7      */
 8     fmtDate(date: Date, pattern: string) {
 9         return pattern
10             .replace(/yyyy/, date.getFullYear().toString())
11             .replace(/MM/, this.fillZero(date.getMonth() + 1, 'l', 2))
12             .replace(/dd/, this.fillZero(date.getDate(), 'l', 2))
13             .replace(/hh/, this.fillZero(date.getHours(), 'l', 2))
14             .replace(/mm/, this.fillZero(date.getMinutes(), 'l', 2))
15             .replace(/ss/, this.fillZero(date.getSeconds(), 'l', 2))
16             .replace(/S/, date.getMilliseconds().toString());
17     }
View Code

Javascript

 1     /**
 2      * format a Date object
 3      * 将 Date 转化为指定格式的String
 4      * @param {Date} date 源日期对象
 5      * @param {string} pattern 匹配模式
 6      * @returns {string} 格式化结果
 7      */
 8     Aqua.prototype.fmtDate = function (date, pattern) {
 9         return pattern
10             .replace(/yyyy/, date.getFullYear().toString())
11             .replace(/MM/, this.fillZero(date.getMonth() + 1, 'l', 2))
12             .replace(/dd/, this.fillZero(date.getDate(), 'l', 2))
13             .replace(/hh/, this.fillZero(date.getHours(), 'l', 2))
14             .replace(/mm/, this.fillZero(date.getMinutes(), 'l', 2))
15             .replace(/ss/, this.fillZero(date.getSeconds(), 'l', 2))
16             .replace(/S/, date.getMilliseconds().toString());
17     };
View Code

 

补零函数 Typescript

    /**
     * fill 0 to a number
     * 数字补零
     * @param {number} src 源数字
     * @param {string} direction 方向 l r
     * @param {number} digit 补零后的总位数
     * @returns {string} 结果
     */
    fillZero(src: number, direction: string, digit: number) {
        let count: number = digit - src.toString().length;
        let os = new Array(count + 1).join('0');
        if (direction !== 'r') {
            return os + src;
        }
        return src + os;
    }
View Code

javascript

    /**
     * fill 0 to a number
     * 数字补零
     * @param {number} src 源数字
     * @param {string} direction 方向 l r
     * @param {number} digit 补零后的总位数
     * @returns {string} 结果
     */
    Aqua.prototype.fillZero = function (src, direction, digit) {
        var count = digit - src.toString().length;
        var os = new Array(count + 1).join('0');
        if (direction !== 'r') {
            return os + src;
        }
        return src + os;
    };
View Code

 

原理很简单,就不写了

欢迎查看我的GitHub

https://github.com/rocketRobin/aqua-toolbox

目录
相关文章
|
2月前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
57 1
|
1月前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
1月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
28 2
|
1月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
40 1
|
2月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
49 3
|
3月前
|
JavaScript 前端开发
javascript创建字符串
javascript创建字符串
|
3月前
|
JavaScript 前端开发
如何在JavaScript中替换字符串:一篇详细指南
如何在JavaScript中替换字符串:一篇详细指南
|
2月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
42 0
|
3月前
|
JavaScript 前端开发 C++
JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方