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

时间:2023-03-08 17:58:05

代码部分

TypeScript

   /**
* format a Date object
* 将 Date 转化为指定格式的String
* @param {Date} date 源日期对象
* @param {string} pattern 匹配模式
* @returns {string} 格式化结果
*/
fmtDate(date: Date, pattern: string) {
return pattern
.replace(/yyyy/, date.getFullYear().toString())
.replace(/MM/, this.fillZero(date.getMonth() + 1, 'l', 2))
.replace(/dd/, this.fillZero(date.getDate(), 'l', 2))
.replace(/hh/, this.fillZero(date.getHours(), 'l', 2))
.replace(/mm/, this.fillZero(date.getMinutes(), 'l', 2))
.replace(/ss/, this.fillZero(date.getSeconds(), 'l', 2))
.replace(/S/, date.getMilliseconds().toString());
}

Javascript

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

补零函数 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;
}

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;
};

原理很简单,就不写了

欢迎查看我的GitHub

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