嗨我有这个javascript函数
function test(){
var count = 0;
var date1 = $('#alternatestartdate').val();
var date2 = $('#alternateenddate').val();
var startDate = new Date(date1);
var endDate = new Date(date2);
var loop = true;
while (loop)
{
$('#pa').append('first test');
if (startDate<=endDate)
{
$('#pa').append('second test');
loop = true;
}
startDate.setDate(startDate.getDate()+1);
}
else
{
loop = false;
}
}
}
问题是在IE8中测试时函数不会进入if循环。因此,只会打印第一次测试。 第二次测试将不会被打印。其他浏览器都工作正常。如何解决这个问题?
答案 0 :(得分:0)
问题可能是IE没有采用您从输入中获得的日期格式 - 因为您的代码在其他浏览器上正常运行 - 。
为了避免这种情况,我建议你解析日期字符串,提取它的数字部分,然后使用Date
constructor。
Date
构造函数可以使用以下参数
new Date(year, month, day, hours, minutes, seconds, ms);
day
,hours
,minutes
,seconds
和ms
可选。
但你应该记得从月份数中减去1
,因为它们是从0开始的(0 = 1月,2 = 2月,... 11 = 12月)。
你可以使用我之前做过的this one这样的函数,它可以完成所有工作,你可以指定一种格式来解析你的日期,例如:
var date = parseDate('09-26-2010', 'mm-dd-yyyy');
答案 1 :(得分:0)
你检查了你的代码结构......看来你的其他人没有if。
功能测试()
{
var count = 0;
var date1 = $('#alternatestartdate')。val();
var date2 = $('#alternateenddate')。val();
var startDate = new Date(date1);
var endDate = new Date(date2);
var loop = true;
while (loop)
{
$('#pa').append('first test');
if (startDate<=endDate)
{
$('#pa').append('second test');
loop = true;
}
startDate.setDate(startDate.getDate()+1);
}
else
{
loop = false;
}
}
}