我正在使用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);
我觉得答案很明显,但我今天没有平时分配咖啡。如果问题是“愚蠢的”,我会很乐意将它标记为[愚蠢问题]或[duh] ...... – RunnerRick 2011-03-08 22:58:32
我在[文档]中看不到任何内容(http://msdn.microsoft.com/en-us /library/4d4x3w61(v=vs.94).aspx),这意味着在调用'myDate.getVarDate()'之前需要调用'myDate.toUTCString()'。你为什么怀疑这可能是需要的? – 2011-03-08 23:00:38
@Matt Ball我很确定这不是必需的,但对VT_DATE值不是很熟悉。我假设VT_DATE在某些任意开始日期之后仅将内部日期表示为tick或milliseconds,因此与时区无关,但我并不积极。 – RunnerRick 2011-03-08 23:04:17