1

我的目标是创建一个时区转换器,它将比较来自 pdf 表单的两个不同日期字段输入,以决定将哪个数组发送到填充下拉列表的函数。一个数组具有 DST 的 UTC 偏移量,而另一个数组具有 UTC 偏移量而不考虑 DST。我首先尝试编写一个条件语句,将日期与静态日期进行对比,但这必须每年进行修改。有没有办法利用 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;                                      
    }
}
}
4

1 回答 1

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}
于 2012-07-13T21:22:45.747 回答