js将"2018-05-19T08:04:52.000+0000"这种格式的时间转化为正常格式

最终版解决办法(在IE下也可以):

参考了:https://blog.csdn.net/cxwtsh123/article/details/82673598

后台返回的日期数据:2019-04-07T16:00:00.000+0000    ,转换后应该是:2019-04-08

截图:

代码:

var time1="2019-04-07T16:00:00.000+0000";

var time2=myTime(time1);

console.log("时间1="+time2);

console.log("时间2=="+formatDateTime(time2));

 

function myTime(date){
     var arr=date.split("T");
     var d=arr[0];
   var darr = d.split('-');

   var t=arr[1];
   var tarr = t.split('.000');
   var marr = tarr[0].split(':');

   var dd = parseInt(darr[0])+"/"+parseInt(darr[1])+"/"+parseInt(darr[2])+" "+parseInt(marr[0])+":"+parseInt(marr[1])+":"+parseInt(marr[2]);
 return dd;
}

 // 数字补0操作
function  addZero(num) {
    return num < 10 ? '0' + num : num;

 function formatDateTime (date) {
        var time = new Date(Date.parse(date));
        time.setTime(time.setHours(time.getHours() + 8));
        var Y = time.getFullYear() + '-';
        var  M = this.addZero(time.getMonth() + 1) + '-';
        var D = this.addZero(time.getDate()) + ' ';
        var h = this.addZero(time.getHours()) + ':';
        var m = this.addZero(time.getMinutes()) + ':';
        var  s = this.addZero(time.getSeconds());
        return Y + M + D;
        // }
      }

其实最方便的还是让后端开发在时间字段上加上: 在返回给前端的model(VO)字段上加一个注解更方便(@JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8"))

第一种方法:

var time="2018-05-19T08:04:52.000+0000";

 var d = new Date(time);

var times=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();

输出 2018-05-19 15:59:10

发现问题:

   如果时间是09:00:00 ,你这样转之后显示的是9:0:0

         2018-05-19T00:00:00.000+0000

转换后:"2018-5-19 8:0:0"

解决办法(网友提供):加个判断就可以了 例如月(d.getMonth() + 1 < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1)

另一种办法:

       myFunction();
       function myFunction(){
           
           var dateee = new Date("2018-05-19T00:00:00.000+0000").toJSON();

//        var dateee = new Date("2017-07-09T09:46:49.667").toJSON();
        
        var date = new Date(+new Date(dateee)+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,'')  
        
           alert(date);
           console.log("时间2==="+date);

}

转换后:2018-05-19 08:00:00

有网友反馈:对于“2017-07-09”这种带“-”格式的日期使用+new Date(dateee)在ie下会报错,

解决办法:可以先转成“2017/07/09”格式的

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值