格式化日期和时间看这篇就够了

286 阅读1分钟

1、先说为啥写这一篇文章;

因为今天在对一个接口的时候,后端要求传日期的时候必须是“2021-12-28”这种类型格式的日期;所以需要自己做一个格式化日期,做成一个方法,用的时候直接调用即可。

2、直接上方法代码

var dateFormat = (dateInput, format) => {
        var day = dateInput.getDate()
        if (day < 10) {
          day = '0' + day
        }
        var month = dateInput.getMonth() + 1
        if (month < 10) {
          month = '0' + month
        }
        var year = dateInput.getFullYear()
        format = format.replace(/yyyy/, year)
        format = format.replace(/MM/, month)
        format = format.replace(/dd/, day)
        return format
      }

3、如何使用这个方法?

let date1 = dateFormat(new Date(), 'yyyy-MM-dd')
直接这样就好了,这时候这个date1就是你想要的当前的时间格式化之后的时间了。

4、拓展应用

拓展一

而且无论以后想要用那种格式的时间,都可以很容易的进行修改;(直接修改第二个参数就行)
(1)日期格式1:2021-12-28
let date1 = dateFormat(new Date(), 'yyyy-MM-dd')
(2)日期格式2:2021年12月28日
let date1 = dateFormat(new Date(), 'yyyy年MM月dd日')
(3)日期格式3:2021/12/28
let date1 = dateFormat(new Date(), 'yyyy/MM/dd')\

拓展二

想要做“2021/12/28 21:55”这种格式的时间也是可以的
这个时候就要修改一下方法:

var dateFormat = (dateInput, format) => {
        var minute = dateInput.getMinutes();
        if(minute<10){
            minute = '0'+minute;
        }
        var hour = dateInput.getHours();
        if(hour<10){
            hour = '0'+hour;
        }
        var day = dateInput.getDate()
        if (day < 10) {
          day = '0' + day
        }
        var month = dateInput.getMonth() + 1
        if (month < 10) {
          month = '0' + month
        }
        var year = dateInput.getFullYear()
        format = format.replace(/yyyy/, year)//年
        format = format.replace(/MM/, month)//月
        format = format.replace(/dd/, day)//日
        format = format.replace(/hh/,hour)//时
        format = format.replace(/mm/,minute)//分
        return format
      }

使用的话就直接:
let date1 = dateFormat(new Date(), 'yyyy/MM/dd hh:mm')