如何使用 Javascript 确定夏令时是否对给定日期和时区有效



是否有任何JavaScript库可以用来检查夏令时是否在特定位置的特定时间有效。

例如,我想知道一个日期,例如时区代码中的"July 1 05:30:00 UTC+0500 2009",例如 110,如果夏令时有效。其他信息始终是可以接受的。

时区代码可以在这里找到 - http://msdn.microsoft.com/en-us/library/bb887715.aspx

提前感谢您的帮助。

迎接!

Javascript对CRM时区代码一无所知。

甚至没有任何好的JavaScript库可以使用Windows时区标识符,就像使用.NET TimeZoneInfo或浏览Windows注册表时找到的那些。

如果您需要在 JavaScript 中使用时区,则需要转换为 IANA/Olson 时区标识符,然后使用我在此处提到的库之一。

如果可以在服务器上的 .NET 中工作,则可以使用此方法从 CRM 时区 ID 转换为 Windows 时区 ID。 然后,您可以使用此方法从 Windows 转换为 IANA 时区。 但是,如果您无论如何都要在服务器上做那么多工作,我不明白为什么您不在那里进行数据转换。

如果您正在寻找一种可以直接从CRM时区ID工作的纯JavaScript解决方案,我很抱歉,但据我所知,这并不存在。 您必须自己构建它,并在时区数据更改时对其进行维护。

当给定时区作为输入时,这将返回truefalse

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

相关内容

  • 没有找到相关文章

最新更新