龙空技术网

JS日期格式化自动补0的小技巧

Owen大前端时代 676

前言:

现在同学们对“js日期0”大约比较关注,你们都需要剖析一些“js日期0”的相关文章。那么小编同时在网上网罗了一些对于“js日期0””的相关内容,希望同学们能喜欢,小伙伴们快快来学习一下吧!

我们在处理日期展示的时候经常需要将时间戳转换为格式化的日期,比较省力的方法是直接使用日期格式化的NPM包,比如:moment.js。但是有时候你不想因为这个小需求引入一个包,或者你想用原生JavaScript实现格式化。

可能的实现是这样的:

const date = new Date();const year = date.getFullYear();const month = date.getMonth() + 1;const day = date.getDate();const hour = date.getHours();const min = date.getMinutes();const ss = date.getSeconds();console.log(`${year}-${month}-${day} ${hour}:${min}:${ss}`);// 2021-8-1 10:31:45

但是这样还不符合格式,因为月份,日期,小时,分,秒有可能是一位数字,需要在数字前补0。所以上面的代码还需要修改一下:

const padZero = function(num){ return num < 10 ? `0${num}` : num;}const date = new Date();const year = date.getFullYear();const month = date.getMonth() + 1;const day = date.getDate();const hour = date.getHours();const min = date.getMinutes();const ss = date.getSeconds();console.log(`${year}-${padZero(month)}-${padZero(day)} ${padZero(hour)}:${padZero(min)}:${padZero(ss)}`); // 2021-08-01 10:38:26

我们实现了一个工具数字大小自动补零的方法,除了上面的方法还有别的方式吗?JavaScript作为一个非常灵活的语言,一定有其他的实现方式。今天就看到一个巧妙的解决办法。

const date = new Date();const year = date.getFullYear();const month = '0' + (date.getMonth() + 1);const day = '0' + date.getDate();const hour = '0' + date.getHours();const min = '0' + date.getMinutes();const ss = '0' + date.getSeconds();console.log(`${year}-${month.slice(-2)}-${day.slice(-2)} ${hour.slice(-2)}:${min.slice(-2)}:${ss.slice(-2)}`); // 2021-08-01 13:43:29

先通过统一添加前缀字符"0",然后再统一截取后两位字符。这样做确实很聪明,很好地达到了格式化的目的。

语言没有高低之分,水平在乎自己。

欢迎大家点赞,评论,收藏,转发。

标签: #js日期0