再使用日期的时候,我们经常会去做一个处理,比如1-9月 会判断小于等于9时,补齐0,变为09;而大于9时,还是以10,11,12展示。 之前一般都是简单的去用if做判断,但是今天发现这个写法可以更简单且高效。
const PrefixInteger = (num, n) => (Array(n).join(0) + num).slice(-n) // 补零操作,为了订单填写页不出现计算错误
//Array(n)创建一个n位的空数组,利用join(0),可以转换为n-1位为0的字符串。
//最后在slice(-n),截取保留n位字符(从后往前),这样就可以保证补0的生效了。
const getDateStr = (date) => [
date.getFullYear(),
PrefixInteger(date.getMonth() + 1, 2),
PrefixInteger(date.getDate(), 2)
].join('-')
这个思路可以很好的解决之前版本类似问题,而且也不用担心兼容性问题。