使用Date()来处理时区转换javascript

本文介绍了如何在JavaScript中利用Date对象处理时区转换问题,特别是在在线编辑器如repl.it中,通过实例展示了一种简单但实用的方法来显示不同时区的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先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)' 这就是当前的太平洋时间啦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值