2017-05-15 11 views
2

をUTCの日付を変換することができない私はバックエンド"2017-05-23T18:30:00"から受信した日付で、ここではローカルの日付に

これは、Chromeで正常に動作します:

  • コール:new Date('2017-05-23T18:30:00').toString()
  • 結果:"Wed May 24 2017 00:00:00 GMT+0530 (India Standard Time)"

ただし、Internet Explorerの場合:

  • コール:new Date('2017-05-23T18:30:00').toString()
  • 結果:"Tue May 23 2017 18:30:00 GMT+0530 (India Standard Time)"

私はChromeで取得していますよう、Internet ExplorerでUTC日​​付からローカルの日付時刻を取得何をしますか?

+2

あなたは、具体的UTCとの時間をマークした場合、それは助けるん: '2017-05-23T18:30:00Z' – Henry

+0

@Henryおかげで、その作業 –

答えて

1

入力クロスブラウザを解析するのにmoment.utcを使用できます。次に、format()を使ってモーメントオブジェクトを表示することができます。モーメントオブジェクトをJavaScript日付に変換する必要がある場合は、toDate()メソッドを使用できます。

現時点に変換する場合は、local()を使用してください。

詳細については、Local vs UTC vs Offsetを参照してください。

ここでライブのサンプル:

var input = '2017-05-23T18:30:00'; 
 
var m = moment.utc(input); 
 
console.log(m.format()); 
 
console.log(m.toDate().toString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

0

IEブラウザは 'MM-DD-YY' の形式になります。 'yy-mm-dd'の形式で指定すると無効な日付になります。

次の関数を使用して、UTCをLocalDateに変換します。

function convertUTCDateToLocalDate(utcDate) { 
    var formattedDate = utcDate.getMonth()+'-'+utcDate.getDate()+'-'+utcDate.getFullYear(); 
    var hours = utcDate.getHours(); 
     var minutes = utcDate.getMinutes(); 
     var seconds = utcDate.getSeconds() 
     var newDate = new Date(formattedDate + ' ' + hours + ':' + minutes+":"+seconds+" UTC"); 
    return newDate; 
} 
var localDate = convertUTCDateToLocalDate(yourUTCDate); 
関連する問題