您的当前位置:首 页 >> 信息中心

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

发布日期:2022-01-18 17:47:31 作者: 点击:

最终版解决办法(在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”格式的