2014-06-09 74 views
0

我有一个要求根据用户使用时刻js提供的时区字符串将(UTC/GMT)时间转换为本地时间。
如:时区转换时刻js

utctime = "2014-06-09T05:36:06.005Z" 
timezone = "5.5" (Indian Standard Time) 
expected result = "2014-06-09 11:06" 

我曾尝试一些代码来实现这一

var local_date = moment.utc("2014-06-09T05:36:06.005Z").zone("+05:30").format('YYYY-MM-DD HH:mm'); 
console.log('local date', local_date); // 2014-06-09 11:06 

这里我得到正确的结果。但是当我把“5.5”(timzone格式从用户端获得)时,我不得不将时区设置为+05:30格式。

我得到用户的时区类似下面的方式

-12, -11, .... -1 GMT 1, 2 .. 3.3, 5, 5.5, 5.75 ... 

有什么办法GMT时间转换为本地使用上面时区格式。请指导我正确的方向。如果不可能,我该如何将用户输入时区转换为我想要的格式。谢谢

+0

你能不能创建一个函数来直接代替你想要的一个接收到的时区的格式? (5.5 - >“05:30”等)。 – Cristy

+0

这是我最后的选择。但在此之前,我不知道现在有什么直接功能可以做到这一点。谢谢 – Dibish

+0

也许你可以在文档中找到这个功能:http://momentjs.com/docs/。例如:'moment()。zone(minutesSinceGMT)''。这样你只需要将接收到的数字乘以60即可。 – Cristy

回答

1

这可能会帮助你http://jsfiddle.net/8qtFy/

var yourvalue=parseFloat("5.5");   

moment.utc("2014-06-09T05:36:06.005Z").add('hours',yourvalue).format('YYYY-MM-DD HH:mm'); 
+0

非常感谢你的帮助,它的确帮助了我.. – Dibish