ES6将时间转换为年月日时分秒格式

ES6提供了一个新的方法padStart(),具有字符串补全长度的功能。第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。例如:
1、字符串长度小于最小长度

'x'.padStart(5, 'ab') // 'ababx' 将字符串x使用ab补全长度5位,当然这5包含本身字符串的长度。

2、如果字符串长度大于最小长度,则返回字符串,如
"bacdef".padSatrt(3,"xxx") // "bacdef"

3、如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
'abc'.padStart(10, 'xxxxxxxx') // xxxxxxxabc

看到这大家有没有想到,将时间转换为年月日时分秒时,我们会用if或者三元判断月、日、时、分、秒大于等于10和小于10的情况,针对小于10的前边会拼接"0",这个方法可以省去我们大量的判断了,代码如下:
function formatData() { let now = new Date(); let year = now.getFullYear(); let month = (now.getMonth() + 1).toString().padStart(2, "0"); let date = (now.getDate()).toString().padStart(2, "0"); let hh = (now.getHours()).toString().padStart(2, "0"); let mm = (now.getMinutes()).toString().padStart(2, "0"); let ss = (now.getSeconds()).toString().padStart(2, "0"); return `${year}-${month}-${date} ${hh}:${mm}:${ss}`; }

以后可以不用在大量写判断了,减少代码量。
【ES6将时间转换为年月日时分秒格式】当然和padStart()对应的还有padEnd()方法,用法是一样的,对于padEnd()我们平时用的最多的场景就是把身份证或者手机号显示后四位,其他数字用"*"代替,对用户是一种保护。
function telFormat() { let tel = "13255557894"; return tel.slice(-4).padStart(tel.length, "*"); }// telFormat()结果: *******7894

    推荐阅读