2017-08-16 5 views
0

d'abord désolé pour mon anglais. J'ai un problème avec mon site Web. J'ai 2 liste déroulante avec la date see the image (inizio = début, fin = fin). Je voudrais que lorsque je clique sur la date de début, la date de fin change (automatiquement) à une heure de plus que la date de début. Par exemple: Dans "inizio" je sélectionne la date suivante: 16 août 2017 : 30, la date de fin devrait changer automatiquement en 16 août 2017 : 30. Default.php:date de liste de sélection automatique PHP (avec 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> 

Méthode 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}"; 
    } 
} 

Répondre

0

Jetez un oeil à ce documentation

Il serait préférable d'utiliser pour cette jquery. Vous devrez ajouter quelque chose comme $(".time2").val('2'); dans le temps de changement1. Où le montant en val est égal à l'heure plus 1 heure.

Time1 - étant la première classe de date et d'heure Time2 - étant la deuxième classe de date et heure