Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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
在调用getVarDate之前,是否需要将JavaScript日期转换为UTC?_Javascript_Internet Explorer_Activex - Fatal编程技术网

在调用getVarDate之前,是否需要将JavaScript日期转换为UTC?

在调用getVarDate之前,是否需要将JavaScript日期转换为UTC?,javascript,internet-explorer,activex,Javascript,Internet Explorer,Activex,我在Internet Explorer中使用ActiveX控件,需要将日期传递给以日期为参数的ActiveX方法。这些方法期望日期的类型为VT_DATE,我可以通过对日期对象使用JScript getVarDate方法来生成VT_DATE值 在调用getVarDate之前,是否需要先将JavaScript日期转换为UTC 我假设答案是否定的,但我不是100%肯定,也不知道为什么 示例JavaScript代码说明了我所说的内容: var myDate = new Date(); // Gives

我在Internet Explorer中使用ActiveX控件,需要将日期传递给以日期为参数的ActiveX方法。这些方法期望日期的类型为VT_DATE,我可以通过对日期对象使用JScript getVarDate方法来生成VT_DATE值

在调用getVarDate之前,是否需要先将JavaScript日期转换为UTC

我假设答案是否定的,但我不是100%肯定,也不知道为什么

示例JavaScript代码说明了我所说的内容:

var myDate = new Date(); // Gives me a JavaScript Date object.
console.log(myDate.toString()); // Outputs a string representing the date in the local time zone.
console.log(myDate.toUTCString()); // Outputs a string representing the date in UTC.

var myVT_DATE = myDate.getVarDate();
myActiveXControl.someMethodWantingVT_DATE(myVT_DATE);

如果您的站点有可能在多个时区中使用,我建议您使用toutString()。默认情况下,每个浏览器将返回本地日期/时间(如您所经历的)。这似乎不是什么大不了的事,直到

你深入到项目中,突然之间,它真的很重要,你面临着重写

。。。或者更糟


你的网站已经上线几个月了,现在你有了一些需要这些日期的需求(比如报告),你意识到你不知道每个日期是在哪个时区创建的。

我觉得答案很明显,但我今天没有喝到我通常分配的咖啡。如果问题是“愚蠢的”,我会很高兴地将其标记为[愚蠢的问题]或[duh]……我看不到任何暗示您需要在调用
myDate.getVarDate()之前调用
myDate.toutString()
。为什么你怀疑这可能是必要的?@Matt Ball我很确定这不是必要的,但我不太熟悉VT_日期值。我假设VT_DATE只是在内部表示一个日期,在某个任意开始日期之后的滴答声或毫秒,因此与时区无关,但我不是肯定的。@Matt Ball,我还查看了您链接的文档,并假设这样一句话,“返回值的实际格式取决于区域设置,”支持我的假设。根据,VT_日期“表示为双精度数字,其中1900年1月1日午夜为2.0,1900年1月2日为3.0,依此类推。”我认为你没有正确理解这个问题。op需要
getVarDate()
,因为他需要VT_date格式的JavaScript日期对象,以便代码可以与ActiveX控件交互。我接受这个答案,因为这是一个很好的方法,可以确保您在使用它之前有UTC日期。(请参阅我的评论和问题,以了解更多上下文。)