在业务中有时候会遇到时间倒计时,特别是电商类业务中的秒杀、抢购、预约等场景,所以就设计时间不足两位,前面补0的操作。
比如 2020-3-9 变成 2020-03-09。
大多数开发朋友会使用如下方法:
代码语言:javascript复制function padLeftZero(n){
return n < 10 ? '0' n : n
}
或
代码语言:javascript复制function padLeftZero(n){
return (n < 10 ? '0' : '') i
}
其实上面两个方法都是一样的。
接下来再介绍几个别的方法:
slice 方法
语法:
代码语言:javascript复制slice(beginIndex)
slice(beginIndex, endIndex)
beginIndex 为负数时,取值改为 str.length beginIndex,例如:
beginIndex = -2,str = '010' ,最后 '010'.slice(3-2) 结果为 '10',此时若 str='03','03'.slice(0) 结果为 '03'。
应用:
代码语言:javascript复制function padLeftZero(n){
return ('0' n).slice(-2)
}
padStart 方法
语法:
代码语言:javascript复制padStart(targetLength)
padStart(targetLength, padString)
就是在前面补足padString,直到满足targetLength的长度。例如
代码语言:javascript复制(3 '').padStart(2,'0') // 也就是 '3'.padStart(2,'0') , 目标长度是2则需要在前面补0来使长度满足,结果为 '03'。
应用:
代码语言:javascript复制function padLeftZero(n){
return (n '').padStart(2,'0')
}
其他一些方法:
代码语言:javascript复制new Date().toISOString().slice(0,10) // "2021-08-20"
new Date().toLocaleDateString("default", {year: "numeric", month: "2-digit", day: "2-digit"}) // "2021/08/21"