国外时间到当地时间
我想把外国时间转换成当地时间。 我在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>