首先Date 对象是基于1970年1月1日(世界标准时间)起的毫秒数。
最简单的显示本地时间是在本地计算机上的editor里面使用
toLocaleTimeString()
就可以输出本地的时间。
可是,我经常使用在线编辑器repl.it来写一些东西。这个时候再用上面的这个方法就不管用了。那么如何在在线编辑器里面实现时区转换呢?写了一个拙劣点的,好在能够实现目标。
function atTheTone() {
var time = new Date(); //返回的是UTC的时间,包括年月日。
//比如这么个东西:2019-03-14T21:42:32.194Z
//(这个东西不是string是object)
var zoneOffset = -7; //目标时区(这里用太平洋时区,同UTC差7小时
var now = time.getTime(); // UTC当前的时间,这里是表示毫秒(现在距1970年1月1日所经过的毫秒数)
var local = new Date(now + zoneOffset*60*60*1000); //大家都是毫秒,所以统一到毫秒单位。
local = local.toString(); //此时local返回的就是本地日期了。
//比如这个:2019-03-14T14:48:36.803Z
//(注意这是个object,我们把它先转成string)
local = local.split(':');
var hours = local[0].slice(-2); //把对应的hour和分钟取出来
var minutes = local[1];
var str = 'The time is: ' + hours + ' hour(s) and ' + minutes + ' minute(s)';
return str;
};
console.log(atTheTone()
// 最后输出:'The time is: 14 hour(s) and 50 minute(s)' 这就是当前的太平洋时间啦。