2017-09-14 5 views
-1

J'ai un formulaire et quand je choisis l'heure de début, je veux régler l'heure de fin une heure plus tard.Comment puis-je régler l'heure d'une entrée à une autre une heure plus tard?

J'ai essayé de le résoudre de cette façon:

$('#timepicker2').val($('#timepicker1').val()); 

Mais rien ne se produisit:

enter image description here

Format de l'heure "HH: mm"

<div class="form-group"> 
    <label for="exampleInputEmail1"> <?php echo lang('date'); ?></label> 

    <input type="text" class="form-control default-date-picker" readonly="" name="date" 
      id="exampleInputEmail1" value='' placeholder=""> 

</div> 
<div class="form-group col-md-12"> 
    <label for="timepicker1"> <?php echo lang('start_time'); ?></label> 
    <div class="col-md-4"> 
     <div class="input-group bootstrap-timepicker timepicker"> 
      <input id="timepicker1" type="text" class="form-control input-small" name="s_time"> 
      <span class="btn btn-default input-group-addon"><i class="glyphicon glyphicon-time"></i></span> 
     </div> 
    </div> 
</div> 

<div class="form-group col-md-12"> 
    <label for="timepicker2"> <?php echo lang('end_time'); ?></label> 
    <div class="col-md-4"> 
     <div class="input-group bootstrap-timepicker timepicker"> 
      <input id="timepicker2" type="text" class="form-control input-small" name="e_time"> 
      <span class="btn btn-default input-group-addon"><i class="glyphicon glyphicon-time"></i></span> 
     </div> 
    </div> 
</div> 

Répondre

0

Voici un Plunker example d'après ce que vous essayez de faire.

var time1 = document.querySelector('#time1'), 
    time2 = document.querySelector('#time2'); 

time1.addEventListener('change', function(e){ 
    time2.value = parseInt(time1.value) + 1; 
}); 

Mise à jour Sur la base de la nouvelle Question

var time1 = document.querySelector('#time1'), 
    time2 = document.querySelector('#time2'); 

time1.value = '10:00'; 

time1.addEventListener('change', function(e){ 
    var t1 = time1.value.split(':').map(Number); 

    if(t1[1] < 10) t1[1] = '0' + t1[1]; 

    t1[0] = (t1[0] + 1)%13; 

    if(t1[0] === 0) t1[0] = 1; 

    time2.value = t1.join(':'); 
}); 

C'est juste une solution rapide aki, il est juste pour vous donner une idée de ce que vous pouvez faire. Il n'y a évidemment pas de validation.

Vous devez probablement utiliser un objet de date new Date() pour accepter une chaîne de date comme premier paramètre et l'analyser dans une date. Pour ajouter une heure à votre date

var d = new Date(); 
d.setHours(d.getHours() + 1); 
+0

oui c'est exactement ce que je dois. mais j'ai toujours un problème. quand je vérifie la valeur $ ('# timepicker1'). val() dans la console, je reçois quelque chose comme ça "11:20". et rien ne pourrait ajouter à cette valeur – Yura

+0

en fait cela fonctionne presque. mais après avoir analysé la valeur de chaîne comme "16:20", il supprime la deuxième partie ( – Yura

+0

Si vous voulez du temps dans hh: mm vous devez utiliser un objet Date pour analyser l'heure.Je peux mettre à jour l'exemple – Jerinaw

0

essayer ci-dessous le code ,

var firstDate = $("#timepicker1").val(); 
var hour = oldDate.getHours(); 
var newDate = firstDate.setHours(hour + 1); 
$("#timepicker2").val(newDate); 

Espérons que cela aidera.

+0

je l'ai déjà essayé code comme votre, mais j'ai rencontré 2 problèmes: 1) getHours est pas une fonction 2) brise le timepicker – Yura