2011-03-08 59 views
0

我正在使用Internet Explorer中的ActiveX控件,并需要将日期传递给以日期为参数的ActiveX方法。方法期望日期类型为VT_DATE,我可以通过在Date对象上使用JScript getVarDate方法生成VT_DATE值。在调用getVarDate之前是否需要将JavaScript日期转换为UTC?

在调用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); 
+0

我觉得答案很明显,但我今天没有平时分配咖啡。如果问题是“愚蠢的”,我会很乐意将它标记为[愚蠢问题]或[duh] ...... – RunnerRick 2011-03-08 22:58:32

+0

我在[文档]中看不到任何内容(http://msdn.microsoft.com/en-us /library/4d4x3w61(v=vs.94).aspx),这意味着在调用'myDate.getVarDate()'之前需要调用'myDate.toUTCString()'。你为什么怀疑这可能是需要的? – 2011-03-08 23:00:38

+0

@Matt Ball我很确定这不是必需的,但对VT_DATE值不是很熟悉。我假设VT_DATE在某些任意开始日期之后仅将内部日期表示为tick或milliseconds,因此与时区无关,但我并不积极。 – RunnerRick 2011-03-08 23:04:17

回答

1

如果有一个以上的时区正在使用您的网站的任何机会,我会()推荐使用toUTCString。每个浏览器默认会返回本地日期/时间(如您所见)。这可能看起来不是什么大事,直到...

你深入该项目,它突然间真的很重要,你面临重写。

...或者更糟......

你的网站已经住了几个月,你现在有一些需要(如报表),需要的日期,你知道,你不知道哪个时区每个日期

+0

我不认为你正确地阅读了这个问题。该操作需要'getVarDate()',因为他需要VT_DATE格式的JavaScript日期对象,以便代码可以与ActiveX控件进行交互。 – 2011-03-08 23:11:20

+0

不错的建议。 – RunnerRick 2011-03-08 23:21:37

+0

我接受此答案,因为这是确保您在使用UTC日期之前的好方法。 (请参阅我的意见,以获得更多的上下文。) – RunnerRick 2011-03-20 01:21:23

相关问题