【问题标题】:Convert string date to utc将字符串日期转换为 utc
【发布时间】:2016-06-30 15:55:00
【问题描述】:

我有一个字符串日期和 utcoffset

var date = '06/30/2016';
var utcOffset = -7.0;

我需要一个 Javascript 函数来使用 utcoffset 将字符串日期转换为 utc

我尝试了以下方式,它只适用于 chrome,但不适用于 IE/11/edge 和 FF。

 var date = '06/30/2016';
 var utcOffset = -7.0;
 var startDate = moment(date).toDate();        
 var offsetDate = moment(startDate + offset).toDate();

有没有其他方法可以在所有浏览器中实现这一点。

我也尝试了以下方法,但它不起作用

var date = '06/30/2016';
 var utcOffset = -7.0;
 var d = moment(date).toDate();  
d.setTime( d.getTime() + offset*60*1000 );

【问题讨论】:

    标签: javascript momentjs utc


    【解决方案1】:

    请尝试以下功能:

    function dateToUTC(date, offset) {
        var tzDate = moment(date).utcOffset(offset);
        var utcDate = new Date(date+tzDate.format('ZZ'));
        if(isNaN( utcDate.getTime() ) ) {
            return moment(date+tzDate.format('Z'))
        }
        return moment(utcDate);
    }
    

    用法:

    var date = '06/30/2016';
    var utcOffset = -7.0;
    
    dateToUTC(date, utcOffset); // Thu Jun 30 2016 07:00:00 GMT+0000
    

    演示: https://jsfiddle.net/3v9cd6uf/

    【讨论】:

      【解决方案2】:

      试试下面的代码,它应该可以工作。它适用于所有浏览器。

          var d =new Date(modifieddate);
                      var _userOffset =d.getTimezoneOffset()*60000; 
                      d = new Date(d.getTime()+_userOffset);
      

      您可以输入自己的偏移值,而不是计算 .让我知道这是否对您有帮助:)

      【讨论】:

      • 这对我不起作用。我已经添加了它不起作用的相同逻辑
      猜你喜欢
      • 2021-04-19
      • 2020-03-21
      • 2012-07-02
      • 2018-05-22
      • 1970-01-01
      • 2015-10-24
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多