Hom*_*mer 6 javascript timezone momentjs
例如,东部和中部的差异是1.我的解决方案感觉很糟糕.有更简单/更好的方法吗?
var diff = (parseInt(moment().tz("America/New_York").format("ZZ")) - parseInt(moment().tz("America/Chicago").format("ZZ"))) / 100;
Run Code Online (Sandbox Code Playgroud)
我的例子是使用Momentjs库.
Mat*_*int 16
计算两个任意时区之间的差异是不可能的.您只能计算特定时刻的差异.
在两个时区之间的一般情况下都是如此.但是,某些时区要么同时切换,要么根本不切换.
请记住,在美国,每个使用DST的时区实际上都会在不同的时刻切换.他们都在各自的上午2:00切换本地时间,但不能在同一通用的时间的时刻.
另请参阅timezone标记wiki中的 "Time Zone!= Offset" .
现在关于时刻 - 时区,你在评论中说:
Web服务器位于东部时区; 我们在中环.我需要用户时区和服务器的区别.
Web服务器的时区无关紧要.您应该能够在世界任何地方托管而不会影响您的应用程序.如果你做不到,那你做错了.
你可以得到当前的时间差的时区(美国中部时间)和用户.如果代码在浏览器中运行,您甚至不需要知道用户的确切时区:
var now = moment();
var localOffset = now.utcOffset();
now.tz("America/Chicago"); // your time zone, not necessarily the server's
var centralOffset = now.utcOffset();
var diffInMinutes = localOffset - centralOffset;
Run Code Online (Sandbox Code Playgroud)
相反,如果代码是在服务器上运行(在node.js的应用程序),那么你就需要知道用户的时区.只需像这样更改第一行:
var now = moment.tz("America/New_York"); // their time zone
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4238 次 |
| 最近记录: |