Moment.js:在不同时区之间切换时,时区转换器无法正常工作

时间:2015-03-10 09:17:05

标签: javascript timezone momentjs

我正在使用时区时区转换器在我的网站上进行时区日期转换。默认情况下,我在IST中显示日期和时间。我有一个按钮,可以在用户的​​时区内转换给定的时间。此按钮操作调用时刻js并执行转换。到此为止,我没有问题。当我将时间恢复到IST并且转换从未发生时,问题就出现了。我在这里缺少什么吗?

<script type="text/javascript">
var userTzName = 'America/New_York'; 
var dateFormat = 'YYYY-MM-DD HH:mm:ss';
var timeStr = '2015-01-17 21:00:00';
var convertedStr = moment(timeStr).tz(userTzName).format(dateFormat);
console.log(convertedStr);

//after sometime or on user action(button click)
userTzName = 'Asia/Kolkata';
timeStr = '2015-01-17 10:30:00'; //this is the converted string from original coversion
var convertedStr1 = moment(timeStr).tz(userTzName).format(dateFormat);
console.log(convertedStr1);
</script>

1 个答案:

答案 0 :(得分:1)

抱歉,这不是一个错误。我错误地使用了这个库。我所做的只是将ISO日期字符串传递给我的时刻功能,它就像一个魅力。我之前的实现没有用,因为当我转换我的日期时间字符串时,第一次总是认为转换的日期时间是在IST中。所以我所要做的只是沟通到第二次转换发生时我的时区不同,并且我能够通过ISO日期字符串实现。这是代码:

<script type="text/javascript">
var userTzName = 'America/New_York'; 
var dateFormat = 'YYYY-MM-DD HH:mm:ss';
var timeStr = '2015-01-17T21:00:00+05:30';//this is a ISO date string
var convertedStr = moment(timeStr).tz(userTzName).format(dateFormat);
console.log(convertedStr);
</script>