1. ホーム
  2. javascript

[解決済み] シンガポール時間からUTC時間への変換を行うモーメントコード

2022-03-01 20:35:27

質問

シンガポール時間をUTC時間に変換するために、以下のコードを書きました。

 function convert(time) {

          let eventStartTime = moment(time, 'HH:mm', 'Singapore').utc().format('HH:mm');

   return eventStartTime;
  }

以下の行を実行すると

  convert('19:00');

23:00と出力されるのですが、これは間違っています。何が間違っているのでしょうか?

解決方法を教えてください。

Alexの回答は、なぜ今のやり方がうまくいかないのかについて、正しい説明をしています。しかし、この問題を解決するには moment-timezone :

function convert(time) {
  let eventStartTime = moment.tz(time, 'HH:mm', 'Asia/Singapore').utc().format('HH:mm');
  return eventStartTime;
}

alert(convert('19:00'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.33/moment-timezone-with-data.js"></script>

そのためには moment.js >= 2.60ですが。