国外时间到当地时间

我想把外国时间转换成当地时间。 我在Europe/London得到一个date和时间。 目前我正在使用时区 – 时区让我的代码工作,但它给了我一个错误的输出。

 resultDate = new moment('2017-06-30T22:10:00').tz('Europe/London').format('YYYY-MM-DD HH:mm:ss'); 

我认为代码认为,dateinput已经在当地时间,我需要将其转换为Europe/London ,这将产生一个本地的结果,因为我想要的是实际转换国外的时间本地时间。

总之,由于我目前住在Asia/Manila ,所以我预计date和时间( 2017-06-30T22:00:00 ),我预计它会提前7个小时( 2017-07-1T05:00:00 ) ,提前7个小时到伦敦。 但是我得到2017/06/30 15:00:00 +0100作为我的结果。

利用我的代码中看到的'Europe/London''Asia/Manila'这样的信息,我有办法做到这一点吗?

您可以使用moment.tz将您的inputparsing为Europe/London时间,然后使用tz函数将其转换为Asia/Manila

第一种方法是使用给定的时区来parsinginput,而后者则将当前对象转换为给定的时区。

这里有一个工作示例:

 // 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>