是否有任何 JavaScript 库可用于检查夏令时是否在特定位置的特定时间生效。
例如,我想知道一个日期,如果夏令时有效,请在时区代码中说“7 月 1 日 05:30:00 UTC+0500 2009”,例如 110。附加信息总是可以接受的。
时区代码可以在这里找到 - http://msdn.microsoft.com/en-us/library/bb887715.aspx
提前感谢您的帮助。
问候!
是否有任何 JavaScript 库可用于检查夏令时是否在特定位置的特定时间生效。
例如,我想知道一个日期,如果夏令时有效,请在时区代码中说“7 月 1 日 05:30:00 UTC+0500 2009”,例如 110。附加信息总是可以接受的。
时区代码可以在这里找到 - http://msdn.microsoft.com/en-us/library/bb887715.aspx
提前感谢您的帮助。
问候!
Javascript 对 CRM 时区代码一无所知。
甚至没有任何好的 JavaScript 库可以与 Windows 时区标识符一起使用,例如您在使用TimeZoneInfo
.NET 或浏览 Windows 注册表时会找到的那些。
如果您需要在 JavaScript 中使用时区,则需要转换为 IANA/Olson 时区标识符,然后使用我在此处提到的库之一。
如果您可以在服务器上的 .NET 中工作,则可以使用此方法将 CRM 时区 ID 转换为 Windows 时区 ID。然后,您可以使用此方法将 Windows 时区转换为 IANA 时区。但是,如果你无论如何都要在服务器上做这么多的工作,我不明白你为什么不在那里也做你的数据转换。
如果您正在寻找可以直接从 CRM 时区 ID 工作的纯 JavaScript 解决方案,我很抱歉,但据我所知,这不存在。您必须自己构建它并在时区数据更改时对其进行维护。
这将返回true
或false
当给定时区作为输入时:
function stdTimezoneOffset() {
var d = new Date();
var jan = new Date(d.getFullYear(), 0, 1);
var jul = new Date(d.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}
function dst(offset) {
var d = new Date(); // create Date object for the current location
var utc = d.getTime() + (d.getTimezoneOffset() * 60000); // get UTC time in milliseconds
var nd = new Date(utc + (3600000 * offset)); // Create net Date() for city with offset
return d.getTimezoneOffset() < stdTimezoneOffset();
}
alert(dst('-5.0')); //New York