2012-07-13 90 views
1

我的目標是創建一個時區轉換器,它將比較來自pdf表單的兩個不同日期字段輸入,以決定將哪個數組發送到填充下拉列表的函數。一個陣列具有DST的UTC偏移量,另一個陣列具有UTC偏移量而不考慮DST。我第一次嘗試寫一個條件語句來檢查日期與靜態日期,但這將不得不每年修改。有沒有辦法利用JavaScript來使這個過程更簡單?理想情況下,我想要一個自我調整的代碼,但每年調整1次並不是世界末日。最初的想法由這個總體思路(僞碼)的:使用javascript,將日期字符串與夏令時進行比較

if(11 Mar 2012 < date < 04 Nov 2012){ 
CountryCode = CountryCodeDST} 
else{ 
CountryCode = CountryCode} 

下面是與功能的陣列。有任何想法嗎?指導?這是我第一次接觸到javascript,希望這個問題有意義,並可以幫助其他人和我一起。

var CountryCode = new Array(
"CST", 
"EST", 
"MST", 
"MST-Arizona"); 

var UTCoffset = new Array(
"GMT+0600", 
"GMT+0500", 
"GMT+0700", 
"GMT+0700"); 

var CountryCodeDST = new Array(
"CST", 
"EST", 
"MST", 
"MST-Arizona"); 

var UTCoffsetDST = new Array(
"GMT+0500", 
"GMT+0400", 
"GMT+0600", 
"GMT+0700"); 

function TZ_Populate(dropdownField) 
{ 
for (var i=0; i < CountryCode.length; i++) 
dropdownField.addItem(CountryCode[i]); 
} 

function TZ_ReadOut(TZ_Alias, UTC_Alias) 
{ 
for (var i = 0; i < CountryCode.length; i++)    
{ 
if (CountryCode[i] == TZ_Alias)      
    { 
    UTC_Alias.rawValue = UTCoffset[i];     
    break;          
    } 
} 
} 
+0

您可以嘗試https://github.com/dsimard/jskata或https://github.com/ MDE /時區-JS – Will 2012-07-13 21:18:18

回答

0
if(11 Mar 2012 < date < 04 Nov 2012){ 
CountryCode = CountryCodeDST} 
else{ 
CountryCode = CountryCode} 

這實際上是在Javascript很容易,因爲幕後的JavaScript中的日期爲整數(特別是從紀元點毫秒數)。因此,您幾乎可以直接編寫與您使用的代碼相同的代碼,並且實際上可以正常工作:

var Mar11_2012 = new Date('3/11/2012'); 
var Nov04_2012 = new Date('11/4/2012') 
if(Mar11_2012 < date && date < Nov04_2012){ 
CountryCode = CountryCodeDST} 
else{ 
CountryCode = CountryCode}