【问题标题】:How do I get the current time in Shanghai in JavaScript?如何在 JavaScript 中获取上海的当前时间?
【发布时间】:2013-11-17 03:13:40
【问题描述】:

试图在上海为一个小项目获取 JavaScript 的当前时间。有谁知道最简单的方法吗?

【问题讨论】:

标签: javascript time timezone


【解决方案1】:

整个中国都有一个时区,即UCT+08:00。所以如果你想根据主机的系统设置得到上海的当前时间,获取本地时间,加上时区偏移量(ECMAScript时区偏移量是分钟要加上得到UTC所以UTC+10:00是-600),然后加上上海的偏移量:

function timeInShanghai() {
  function z(n){return (n<10?'0':'') + n}
  var d = new Date();
  d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + 480);
  return z(d.getHours()) + ':' + z(d.getMinutes()) + ':' + z(d.getSeconds());
}

如果他们更改时区或采用夏令时,这有点没用。

【讨论】:

    【解决方案2】:

    我用moment.js 就像一个懒惰的流浪汉:

    var now = moment();
    var timeInShanghai = now.tz('Asia/Shanghai').format('h:mma');
    

    【讨论】:

      【解决方案3】:

      上海的时区偏移量是8 获取日期:

      var date=new Date().getTime();
      

      获取小时、分钟、秒

      seconds=parseInt((d/1000)%60);
      
      hours=parseInt((d/(1000*60*60))%60)+8; \\for the offset
      
      minutes=parseInt((d/(1000*60))%60);
      

      然后把它重新组合成一个字符串:

      console.log(hours+":"+minutes+":"+seconds);
      

      【讨论】:

      • 当然,您始终可以使用 Date 实例的内置 getHours、getMinutes 和 getSeconds 方法。以上将在 1600 UTC 之后出现错误。
      猜你喜欢
      • 2014-11-04
      • 2015-06-18
      • 2015-11-23
      • 2012-04-29
      • 1970-01-01
      • 2017-08-02
      • 2011-04-06
      相关资源
      最近更新 更多