var arry=new Array();
        var startTime="2009-06-06 10:30:11";   //document.getElementById("txtStartTime").value;
        var endTime="2009-06-06 12:30:11";     //document.getElementById("txtEndTime").value;
        
           
        startTime=startTime.replace(/-/g,"/");
        endTime=endTime.replace(/-/g,"/");
        var d1=new Date(startTime);
        var d2=new Date(endTime);
        var isTrue=true;
      
        arry[0]=d1;
        var i=1;
        while(isTrue)
        {
         
            d1.setMinutes(d1.getMinutes()+30);
            if(d1<d2)
            {
              arry[i]=d1;
              //alert(i+"="+arry[i]);
              isTrue=true;
              i+=1;
            }
            else
            {
              arry[i]=d2;
             // alert(i+"="+arry[i]);
              isTrue=false;
            }
         
        }
      for(var j=0;j<arry.length;j++)
        {
            alert(arry[j]);
        }      为什么值都是alert出来的都是2009-06-06 12:30:11;

解决方案 »

  1.   

    var arry=new Array();
    var startTime="2009-06-06 10:30:11";  //document.getElementById("txtStartTime").value;
    var endTime="2009-06-06 12:30:11";    //document.getElementById("txtEndTime").value; 
    startTime=startTime.replace(/-/g,"/");
    endTime=endTime.replace(/-/g,"/");
    var d1=new Date(startTime);
    var d2=new Date(endTime);
    var isTrue=true;
    var nd = '';//开个新的变量
    arry[0]=d1;
    var i=1;
    while(isTrue)
    { d1.setMinutes(d1.getMinutes()+30);
    nd = d1.toString();
    if(d1 <d2)
    {
      arry[i]=nd;//存储值,而不是d1,d1相当于一指针。
      //alert(i+"="+arry[i]);
      isTrue=true;
      i+=1;
    }
    else
    {
      arry[i]=d2;
    // alert(i+"="+arry[i]);
      isTrue=false;
    }}
    for(var j=1;j <arry.length;j++)
    {//你i从1开始记录,这里就从1开始循环
    alert(arry[j]);

      

  2.   

     d1.setMinutes(d1.getMinutes()+30);
     d1=arry[i];