关于 JavaScript 时区问题在日常开发中最常遇到的就是,是否需要加减8小时的问题,这主要是因为:'2020-05-27T15:20Z'格式时间是 UTC时间,即世界标准时间,与北京时间大约差8个小时,转化后的时间为北京时间,所以加了8个小时。
直接看实例:
代码逻辑:
var aa1= new Date(new Date(this.ruleForm.dateValue).getTime() - 8 * 3600 * 1000)
var date = new Date(aa1);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
var D = date.getDate()<10 ? '0' + date.getDate() : date.getDate();
var h = (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()) + ':' ;
var m = (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes()) + ':' ;
var s = (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds());
var time = Y+M+D+'T'+h+m+s+'Z';
这里所列举的是传参的处理,在开发中我们遇到的多数是接口返回的时间是世界标准时间,需要我们加上8小时,处理的方法是一致的