2009-11-01 5 views
0

Est-ce que quelqu'un sait comment faire? Je suis sûr que cela a déjà été fait.Fonction php pour générer des listes déroulantes MM/JJ/AA et HH/MM avec la date du jour sélectionnée

Besoin de générer des listes html downdown, et remplissez les champs mois, jour, année, puis les heures et les minutes. Je n'ai besoin que du MM/JJ/AAAA pour afficher le courant (si ces valeurs correspondent au courant, marquer cette option). Je ne saurais même pas par où commencer. Je suppose en boucle quelque chose avec la fonction de date? Je suis perdu ici.

modifier
tous les mois, jours 1-31, et l'année en cours, plus de 6 ans dans l'avenir.

+0

et si ce n'est pas trop de problèmes, le champ jour devrait avoir le nombre de jours appropriés pour le mois sélectionné? – pavium

+0

Je ne comprends pas ce que vous faites ici. Contribuez-vous à la question ou essayez-vous d'être sarcastique? – mrpatg

Répondre

2

deux choisit par exemple:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta http-equiv="Content-Language" content="en" /> 
    <title>Test</title> 
</head> 
<body> 
    <form> 
    <fieldset> 
     <legend></legend> 
     <label for="date">date : </label> 
     <select id="date" name="date" title="Peek a date"> 
     <?php 
     $beg = new DateTime(); 
     $end = new DateTime(); 
     $end->modify("+6 years"); 

     while($beg->format("U") <= $end->format("U")) { 
      $d = $beg->format("d/m/Y"); 
      echo "<option value='" . $d . "'" . (date("d/m/Y") == $d ? " selected='selected'" : "") . ">" . $d . "</option>\n"; 
      $beg->modify("+1 day"); 
     } 
     ?> 
     </select> 
     <label for="time">time : </label> 
     <select id="time" name="time" title="Peek a time"> 
     <?php 
     foreach(range(0, 24) as $h) { 
      foreach(range(0, 59) as $m) { 
      $t = sprintf("%02d:%02d", $h, $m); 
      echo "<option value='" . $t . "'" . (date("H:i") == $t ? " selected='selected'" : "") . ">" . $t . "</option>\n"; 
      } 
     } 
     ?> 
     </select> 
</body> 
</html> 

ou avec datepicker jQuery UI (plus convivial à mon humble avis):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
<head> 
    <title>Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta http-equiv="Content-Language" content="en" /> 
    <script type="text/javascript" src="includes/js/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript" src="includes/js/jquery-ui-1.7.2.custom.min.js"></script> 
    <link rel="stylesheet" type="text/css" href="includes/js/themes/ui-lightness/jquery-ui-1.7.2.custom.css" media="screen, print" /> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    var d = new Date(); 

    $("#date").datepicker({ 
     minDate: d, 
     maxDate: new Date(d.getFullYear() + 6, d.getMonth(), d.getDay()), 
     dateFormat: "dd/mm/yy", 
     mandatory: true, 
     changeFirstDay: false, 
     changeYear: true, 
     showStatus: true, 
     showOn: "both", 
     buttonImage: "images/calendar.gif", 
     buttonImageOnly: true 
    }).addClass("embed"); 
    }); 
    </script> 
</head> 
<body> 
    <form> 
    <fieldset> 
     <legend></legend> 
     <label for="date">date : </label> 
     <input type="text" name="date" id="date" /> 
     &nbsp;&nbsp; 
     <label for="time">time : </label> 
     <select id="time" name="time" title="Peek a time"> 
     <?php 
     foreach(range(0, 24) as $h) { 
      foreach(range(0, 59) as $m) { 
      $t = sprintf("%02d:%02d", $h, $m); 
      echo "<option value='" . $t . "'" . (date("H:i") == $t ? " selected='selected'" : "") . ">" . $t . "</option>\n"; 
      } 
     } 
     ?> 
     </select> 
</body> 
</html> 
0

Ive a trouvé ce qui suit au travail jusqu'à présent. Adaptez-le à vos besoins particuliers pour la journée/minute/heure, etc. Maintenant, c'est pendant des mois.

<? 

$current_time_m = date('n'); 

for ($i = 1; $i <= 12; $i++) { 
    echo "<option value='$i'"; 
if ($i == $current_time_m) { echo " selected='selected'"; } 
$month_text = date("F", mktime(0, 0, 0, $i+1, 0, 0, 0)); 
    echo ">$month_text</option> 
"; } 
?> 
Questions connexes