如何用moment.js zone()方法格式化时间?

时间:2018-02-19 16:22:42

标签: momentjs

我正在使用moment.js v2.5,utcOffset在v2.5中不可用。我只获得当前用户的Time.now.utc_offset //19800(UTC偏移量为  印度)来自铁路后端。

  1. 为什么zone()utcOffset()会返回彼此相反的值(请查看包含的代码片段)?
  2. 如何用moment.js中的zone()方法计算适当的时间?
  3. 
    
    $(document).ready(function(){
      moment.suppressDeprecationWarnings = true
      $('.utc span').text(moment().utcOffset());
      $('.zone span').text(moment().zone());
      
      // 19800/60 => 330
      $('.india.zone span').text(moment(1519043028734).zone(330).format('HH:mm'))
      $('.india.utc span').text(moment(1519043028734). utcOffset(330).format('HH:mm'))
    });
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
    
    <p class="zone">Zone: <span></span></p>
    <p class="utc">UTC: <span></span></p>
    <p class="india zone">Zone:<span></span></p>
    <p class="india utc">UTC:<span></span></p>
    &#13;
    &#13;
    &#13;

1 个答案:

答案 0 :(得分:1)

utcOffset

  

以分钟为单位获取UTC偏移量。

     

注意:与moment.fn.zone不同,此函数返回UTC的实际偏移量,而不是反向偏移量(由Date.prototype.getTimezoneOffset返回)。

所以,基本上,zone()具有相同的Date.prototype.getTimezoneOffset输出:

  

时区偏移是UTC与本地时间之间的差异(以分钟为单位)。请注意,这意味着如果本地时区落后于UTC,则偏移量为正,如果前置,则偏移量为负。例如,对于时区UTC + 10:00(澳大利亚东部标准时间,符拉迪沃斯托克时间,查莫罗标准时间),将返回-600。

要使用zone()获取适当的时间,您只需将符号更改为偏移量(例如-330而不是300

&#13;
&#13;
$(document).ready(function(){
  moment.suppressDeprecationWarnings = true
  $('.utc span').text(moment().utcOffset());
  $('.zone span').text(moment().zone());
  
  // 19800/60 => 330
  $('.india.zone span').text(moment(1519043028734).zone(330*-1).format('HH:mm'))
  $('.india.utc span').text(moment(1519043028734). utcOffset(330).format('HH:mm'))
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>

<p class="zone">Zone: <span></span></p>
<p class="utc">UTC: <span></span></p>
<p class="india zone">Zone:<span></span></p>
<p class="india utc">UTC:<span></span></p>
&#13;
&#13;
&#13;