2017-08-16 26 views
0

起初对不起我的英文。我的网站有问题。我有2个下拉日期see the image(inizio =开始,罚款=结束)。我希望当我点击START DATE时,END DATE更改(自动)为比开始日期多一个小时。例如:在“inizio”中,我选择以下日期:16 agosto(August)2017 :30,END DATE应该在16个月内自动更改2017 :30。如default.php:自动选择下拉日期PHP(带joomla)

<tr height="50px"> 
     <td align="center" style="border-color:white; border:0px; background-color:#F8F9FA;"><br /><b><font size="+1">Inizio</font></b></td> 
     <td align="center" style="border-color:white; border:0px; background-color:#F8F9FA;"><br />' . $this->helper->dateTimePicker("inizio", "DATETIME") . '</td> 
    </tr> 

    <tr height="50px"> 
     <td align="center" style="border-color:white; border:0px; background-color:#F8F9FA;"><b><font size="+1">Fine</font></b></td> 
     <td align="center" style="border-color:white; border:0px; background-color:#F8F9FA;">' . $this->helper->dateTimePicker("fine", "DATETIME") . '</td> 
    </tr> 

方法dataTimePicker:

function dateTimePicker($dpname, $mode = "DATE") // MODES: "DATE" or "DATETIME" 
{ 
    $control = ""; 
    $anni_da_visualizzare = 2; 

    if ($mode == "DATE" || $mode == "DATETIME") 
    { 

     $control .= '<select name="giorno_'.$dpname.'">'; 

     for ($i = 1; $i <= 31; $i++) 
     { 
      if ($i == date("j")) 
      { 
       $control .= '<option value="'.$i.'" selected="selected">'.$i.'</option>'; 
      } 
      else 
      { 
       $control .= '<option value="'.$i.'">'.$i.'</option>'; 
      } 
     } 

     $control .= '</select>'; 
     //================================= 

     $control .= "&nbsp;"; 

       $mesi = array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"); 

     $control .= '<select name="mese_'.$dpname.'">'; 

     for ($i = 1; $i <= 12; $i++) 
     { 
      if ($i == date("n")) 
      { 
       $control .= '<option value="'.$i.'" selected="selected">'.$mesi[$i-1].'</option>'; 
      } 
      else 
      { 
       $control .= '<option value="'.$i.'">'.$mesi[$i-1].'</option>'; 
      } 
     } 

     $control .= '</select>'; 
     //================================= 

     $control .= "&nbsp;"; 


     $control .= '<select name="anno_'.$dpname.'">'; 

     $inizio = date("Y"); 
     $fine = date("Y") + $anni_da_visualizzare; 


     for ($i = $inizio; $i <= $fine; $i++) 
     { 
      if ($i == date("Y")) 
      { 
       $control .= '<option value="'.$i.'" selected="seected">'.$i.'</option>'; 
      } 
      else 
      { 
       $control .= '<option value="'.$i.'">'.$i.'</option>'; 
      } 
     } 

     $control .= '</select>'; 
     //================================= 

     $control .= "&nbsp;&nbsp;&nbsp;"; 


     if ($mode == "DATETIME") 
     { 
      //H - ore_$dpname ! 
      $control .= '<select name="ore_'.$dpname.'">'; 

      for ($i = 0; $i <= 23; $i++) 
      { 
       if ($i == date("G")) 
       { 
        $control .= '<option value="'.$i.'" selected="selected">'.($i < 0 ? '0'.$i : $i).'</option>'; 
       } 



       else 
       { 
        $control .= '<option value="'.$i.'">'.($i < 10 ? '0'.$i : $i).'</option>'; 
       } 
      } 

      $control .= '</select>'; 
      //================================= 

      $control .= "&nbsp;"; 

      //Minutes- minuti_$dpname ! 
      $control .= '<select name="minuti_'.$dpname.'">'; 

      for ($i = 0; $i <= 3; $i++) 
      { 

       if (intval(date("i")) < ($i*15) && intval(date("i")) > (($i*15) - 15)) 
        $control .= '<option value="'.($i*15).'" selected="selected">'.($i == 0 ? '00' : (15*$i)).'</option>'; 
       else 
        $control .= '<option value="'.($i*15).'">'.($i == 0 ? '00' : (15*$i)).'</option>'; 
      } 

      $control .= '</select>'; 
      //================================= 

      $control .= "&nbsp;"; 
     } 

     return $control."<br />"; 
    } 
    else 
    { 
     return "{<u>dateTimePicker ERROR:</u> modalit&agrave; non valida}"; 
    } 
} 

回答

0

看一看这个documentation

这将是最好使用jquery这一点。您将不得不在time1的更改内添加诸如$(".time2").val('2');之类的内容。 val中的金额等于时间加1小时。

时间1 - 第一次日期和时间级别 时间2 - 第二次日期和时间级别