使用javascript,将日期字符串与夏令时进行比较

时间:2012-07-13 21:14:06

标签: javascript function date

我的目标是创建一个时区转换器,它将比较pdf表单中的两个不同日期字段输入,以决定将哪个数组发送到填充下拉列表的函数。一个阵列具有DST的UTC偏移,另一个阵列具有忽略DST的UTC偏移。我首先尝试编写一个条件语句,根据静态日期检查日期,但这必须每年进行修改。有没有办法利用JavaScript来使这个过程更容易?理想情况下,我想要一个自我调整代码,但每年1次调整并不是世界末日。最初的想法包括这个一般的想法(伪代码):

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;                                      
    }
}
}

1 个答案:

答案 0 :(得分: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}