Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript确定给定日期和时区的日光节约是否有效?_Javascript_Timezone_Dynamics Crm_Dst - Fatal编程技术网

如何使用Javascript确定给定日期和时区的日光节约是否有效?

如何使用Javascript确定给定日期和时区的日光节约是否有效?,javascript,timezone,dynamics-crm,dst,Javascript,Timezone,Dynamics Crm,Dst,是否有JavaScript库,我可以使用它来检查日光节约是否在特定位置的特定时间有效 例如,我想知道一个日期,在时区代码中说“July 1 05:30:00 UTC+0500 2009”,例如110,如果日光节约有效。附加信息总是可以接受的 时区代码可在此处找到- 提前谢谢你的帮助 欢迎 当给定时区作为输入时,这将返回true或false: function stdTimezoneOffset() { var d = new Date(); var jan = new Date(

是否有JavaScript库,我可以使用它来检查日光节约是否在特定位置的特定时间有效

例如,我想知道一个日期,在时区代码中说“July 1 05:30:00 UTC+0500 2009”,例如110,如果日光节约有效。附加信息总是可以接受的

时区代码可在此处找到-

提前谢谢你的帮助


欢迎

当给定时区作为输入时,这将返回
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
函数stdTimezoneOffset(){
var d=新日期();
var jan=新日期(d.getFullYear(),0,1);
var jul=新日期(d.getFullYear(),6,1);
返回Math.max(jan.getTimezoneOffset(),jul.getTimezoneOffset());
}
功能dst(偏移量){
var d=new Date();//为当前位置创建日期对象
var utc=d.getTime()+(d.getTimezoneOffset()*60000);//获取utc时间(毫秒)
var nd=新日期(utc+(3600000*偏移量));//为具有偏移量的城市创建净日期()
返回d.getTimezoneOffset()
Javascript对CRM时区代码一无所知

甚至没有任何好的JavaScript库可以与Windows时区标识符一起工作,就像使用.NET中的
TimeZoneInfo
或浏览Windows注册表时可以找到的那样

如果需要在JavaScript中使用时区,则需要将其转换为IANA/Olson时区标识符,然后使用一个

如果可以在服务器上的.NET中工作,则可以使用将CRM时区Id转换为Windows时区Id。然后可以使用将Windows转换为IANA时区。但是如果你打算在服务器上做那么多的工作,我不明白你为什么不在那里也做数据转换


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

查看此帖子:感谢您的回答。我的问题相当简单。服务器的时区与我尝试访问它的位置不同。我需要知道服务器所在的地方在给定的时间内是否有日光节约。再次感谢。您使用MS Dynamics CRM时区代码有什么原因吗?如果是这样,为什么需要javascript答案?您可能还想了解如何从CRM时区代码中获取常规的
TimeZoneInfo
标识符。不过,您还是应该在.net中完成所有这些,而不是在javascript中。谢谢您的帮助。我正在将CRM中的元数据读取到Javascript中。最大的问题是我只有时区代码。我只需要知道在给定的时间内,CRM对时区的夏令时是否有效。是的,我必须用Javascript来实现这一点。再次感谢。这是有缺陷的。你经常犯两个错误。1) 您无法仅从其偏移量识别时区<代码>-5.0不仅仅适用于纽约。2) DST在世界各地的工作方式不同。这段代码最好是使用您自己的本地时区的DST概念,并将其错误地应用到其他地方。您应该阅读和的“时区!=偏移量”部分。