项目场景:

开发中,后台传给前台了一串类似这样格式的日期-时间字符串:
2020-09-10T07:36:51.000+0000
直接显示出来肯定不符合需求,我们需要把它格式化成北京时间。


问题分析:

这串日期-时间其实已经有我们需要的所有信息了,我们一块一块地分析一下:

  • 2020-09-15,这个是日期。
  • 10:30:20.000,这个是精确到毫秒的时间。
  • 0000,这个是提示时区。
  • T,提示日期与时间的分界线
  • +,提示时间与时区的分界线

现在我们知道,如果我们直接parse这个字符串,得到的也不是北京东八区的时间,所幸JS中有直接封装好的格式化代码,不需要我们考虑如何加减时间、日期了。


解决方案:

直接调用JS的方法:

let date = "2020-09-10T07:36:51.000+0000"
var dateString = new Date(date)
 // 注意js里面的getMonth是从0开始的
let FormattedDateTime = 
dateString.getFullYear() + '-' + 
(dateString.getMonth() + 1) + '-' + 
dateString.getDate() + ' ' + 
dateString.getHours() + ':' + 
dateString.getMinutes() + ':' + 
dateString.getSeconds();
console.log(FormattedDateTime);
// 2020-9-10 15:36:51

这样我们就得到北京时间了!

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐