我正在尝试将外国时间转换为本地时间。我在Europe/London
得到了约会时间。目前我正在使用时间 - 时区来使我的代码正常工作,但它给了我一个错误的输出。
resultDate = new moment('2017-06-30T22:10:00').tz('Europe/London').format('YYYY-MM-DD HH:mm:ss');
我认为代码认为日期输入已经在本地时间,我需要将其转换为Europe/London
,这将产生本地结果,我想要的是实际将外国时间转换为本地时间。
简而言之,我的输入日期和时间(2017-06-30T22:00:00
),我预计它会提前7小时(2017-07-1T05:00:00
),因为我目前住在Asia/Manila
,7小时提前到伦敦。但是我的结果是2017/06/30 15:00:00 +0100
。
使用我的代码中显示的'Europe/London'
或'Asia/Manila'
信息,我有办法做到这一点吗?
答案 0 :(得分:2)
您可以使用moment.tz
将输入解析为Europe/London
时间,然后使用tz
功能将其转换为Asia/Manila
。
第一个使用给定时区解析您的输入,而后者将时刻objet转换为给定时区。
这是一份工作样本:
// Parse input considering as London tz
var timeInLondon = moment.tz('2017-06-30T22:10:00', 'Europe/London');
// Converting input to Manila
var timeInManila = timeInLondon.tz('Asia/Manila');
// Show result
console.log(timeInManila.format('YYYY-MM-DD HH:mm:ss'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.11/moment-timezone-with-data-2010-2020.min.js"></script>