![](/img/trans.png)
[英]How do I stop a date/time comparison from failing when a user is in a different time zone?
[英]How do i display the time in the user time zone?
在我的网站上,我唯一使用时间的地方是我插入数据库时。 当我拉它时,我想根据用户时区显示时间。 我正在用 C# 生成页面的这一部分(在 ASP.NET 中提供,但不使用 .aspx 代码文件)。
如何根据用户时区显示时间? 我有一种感觉,我需要让用户输入他的位置才能执行此操作? 从位置获取时间并考虑夏令时的最佳方法是什么? 或者通过 JS 和 jquery 将 UTC 翻译成他的作弊?
您可以使用 Javascript Date 对象来获取它。 Date.getTimezoneOffset() 将为您提供本地和 UTC 日期表示之间的分钟差。 实际值最终来自系统时钟,如果设置正确,将知道它所在的时区。
您可以要求用户按照您的建议选择时区。
您可以使用(new Date).getTimezoneOffset();
正如Robusto 的回答中所建议的那样。 这将返回从用户的本地时间中减去以获得 UTC 的分钟数。 用户必须在操作系统中配置正确的时区才能获得良好的结果。
另一个通过在 JavaScript 中在new Date();
之间进行客户端日期比较来“猜测”用户时区的技巧new Date();
和服务器生成的时间戳。
这样做的好处是,即使用户没有在操作系统中配置正确的区域设置,它也能工作。 只要用户的电脑时钟精确到+/- 30分钟,就应该是可靠的。
只需将 UTC 时间传递给 JavaScript Date()
构造函数。 根据用户计算机的设置,生成的Date
对象将是用户本地时区的时间。
var gmt = new Date('Feb, 19 2010 13:00:00 GMT');
alert(gmt);
在 Chrome 中,在太平洋时区,这会显示
Fri Feb 19 2010 05:00:00 GMT-0800 (Pacific Standard Time)
如果您需要在服务器端获得此信息,请不要向用户询问他们的位置。 只需直接询问他们的时区即可。 许多网站(特别是论坛)已经这样做了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.