将字符串日期转换为 utc

Convert string date to utc

我有一个字符串日期和 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 );

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

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

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

请尝试以下功能:

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/