为了账号安全,请及时绑定邮箱和手机立即绑定

获取特定时区的时间

获取特定时区的时间

慕森王 2019-10-09 15:27:16
我正在使用JavaScript Date类,并尝试使用getDate()方法获取当前日期。但显然是加载系统日期和时间。我正在从印度运行代码,但我想使用相同的方法来获取英国的日期和时间。我怎样才能做到这一点 ?
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

如果您知道UTC偏移量,则可以使用以下函数传递它并获取时间:


function calcTime(city, offset) {

    // create Date object for current location

    var d = new Date();


    // convert to msec

    // subtract local time zone offset

    // get UTC time in msec

    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);


    // create new Date object for different city

    // using supplied offset

    var nd = new Date(utc + (3600000*offset));


    // return time as a string

    return "The local time for city"+ city +" is "+ nd.toLocaleString();

}


alert(calcTime('Bombay', '+5.5'));


查看完整回答
反对 回复 2019-10-09
?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以使用Intl.DateTimeFormat。


var options = {

    timeZone: 'Europe/London',

    year: 'numeric', month: 'numeric', day: 'numeric',

    hour: 'numeric', minute: 'numeric', second: 'numeric',

},

    formatter = new Intl.DateTimeFormat([], options)

formatter.format(new Date())

另外,如果您只格式化一次而不是批量使用Date.prototype.toLocaleDateString()。


(new Date()).toLocaleString([], options)

不幸的是浏览器不要求了解比UTC其他时区,所以try这些块,并计算出在情况下,它失败的替代,例如取时区从服务器偏移。


查看完整回答
反对 回复 2019-10-09
?
www说

TA贡献1775条经验 获得超8个赞

最好的方法是使用getLocaleString,如下所示:


创建一个日期对象:


date = new Date(0)

如果您在柏林,则应将其转换为以下字符串:


1970年1月1日星期四01:00:00 GMT + 0100(CET)


获取雅典的时间:


date.toLocaleString('de-DE', {hour: '2-digit',   hour12: false, timeZone: 'Europe/Athens' })

'02'


获取上海时间:


date.toLocaleString('de-DE', {hour: '2-digit',   hour12: false, timeZone: 'Asia/Shanghai' })

'08'


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 559 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信