js转换Datetime遇到的坑

今天写页面发现这么一个问题:将后台传来的时间格式化,本来是一个很简单的问题,但是搞了好久发现转换不对,百度了很久,自己写的和别人差不多,没发现什么问题。
原本的代码:

function _getDate(time) {
    let str = null
    let date = new Date(str)
    let year = date.getFullYear()
    let month = date.getMonth() + 1
    let day = date.getDate()
    let hours = date.getHours()
    let mi = date.getMinutes()
    let seconds = date.getSeconds()
    if (month < 10) {
        month = '0' + month
    }
    if (day < 10) {
        day = '0' + day
    }
    if (hours < 10) {
        hours = '0' + hours
    }
    if (mi < 10) {
        mi = '0' + mi
    }
    if (seconds < 10) {
        seconds = '0' + seconds
    }
    let t = year + '-' + month + '-' + day + " / " + hours + ":" + mi + ":" + seconds
    return t
}

但是转换出来的日期就是不对,到底是什么问题呢?
由于后端传过来的数据是GMT的,所以到了前端需要做一下判断,一定要加上if那一段

function _getDate(time) {
    let str = null
    if (time != null) {
        str = time.replace("GMT", "")
    }
    let date = new Date(str)
    let year = date.getFullYear()
    let month = date.getMonth() + 1
    let day = date.getDate()
    let hours = date.getHours()
    let mi = date.getMinutes()
    let seconds = date.getSeconds()
    if (month < 10) {
        month = '0' + month
    }
    if (day < 10) {
        day = '0' + day
    }
    if (hours < 10) {
        hours = '0' + hours
    }
    if (mi < 10) {
        mi = '0' + mi
    }
    if (seconds < 10) {
        seconds = '0' + seconds
    }
    let t = year + '-' + month + '-' + day + " / " + hours + ":" + mi + ":" + seconds
    console.log(t)
    return t
}

没加if:
在这里插入图片描述
加了if:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值