2011-03-08 18 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

相關問題