Mit Datetimepicker Zeit errechnen

CreativPur

Erfahrenes Mitglied
Hallo..
Ich habe ein kleines Problem und stehe voll auf dem Schlauch.

Ich habe ein Formular, wo man mit einem Datetimepicker die Startzeit und die Endzeit eingibt.

Code:
<div class="col-md-3 col-lg-3 col-sm-12 col-xs-12" align="left">       
<label style="color:green; text-align:left;">
<span class="add-on" style="color:red;">*</span> Zeit von- bis:</p>
</label>
<div class="input-group" style="margin-top:-10px;"><!-- Date input -->
<div class="input-group bootstrap-timepicker timepicker" style="color:green;">
<input type="text" id="datetimepicker1" class="form-control" name="Reservierung_von" placeholder="von"/>
<input type="text" id="datetimepicker2" class="form-control" name="Reservierung_bis" placeholder="bis"/>
<span class="input-group-addon" style="color:green;"><i class="glyphicon glyphicon-time" style="color:green;"></i>
</span>
</div>
</div>
</div>

Durch den Button "Weiter" wird das Form per POST auf eine weitere Seite für die Ausgabe weiter geleitet..

Code:
<input type='text' id='zeit_bis' size="5" value="<?php echo $Reservierung_von ?>">
<input type='text' id='zeit_bis' size="5" value="<?php echo $Reservierung_bis ?>">

All das funktioniert auch ..

Jetzt benötige ich eine Rechenfunktion, damit aus diesen zwei Zeitangaben "von-bis" die tatsächlichen Minuten errechnet werden.

z.B.: von 23.27 Uhr bis 04.33 Uhr = 305 Minuten
Bei der Ausgabe <?php echo $Reservierung_von ?> ist noch zu bemerken, das die Zeit folgend ausgegeben wird.
23:27
Ich denke mal, dass da erst einmal das Format umgeändert werden muss, oder ?
Wenn Ja, wie mache ich das und wie könnte die Rechenfunktion aussehen ?
 
Ich habe folgendes Script gefunden..
Leider werden mir in diesem Script die Tage errechnet..
Wie kann ich dies aber mit der Zeitberechnung umbauen ?

Eingabe
Code:
<input type="text" id="date1">
<input type="text" id="date2">
<input type="text" id="calculated">

Script
Code:
$(document).ready(function () {
    var selector = function (dateStr) {
            var d1 = $('#date1').datepicker('getDate');
            var d2 = $('#date2').datepicker('getDate');
            var d3 = $('#calculated').val();
            var diff = 0;
            if (d1 && d2) {
                diff = Math.floor((d2.getTime() - d1.getTime()) / 86400000); // ms per day
            $('#calculated').val(diff);               
            }
        if(d3 != ''){
                if(d1){
                var d = d1.getTime() + ($('#calculated').val() * 86400000) ;
                $('#date2').datepicker('setDate', new Date(d));
                }
            if(d2){
                 var d = d2.getTime() - ($('#calculated').val() * 86400000) ;
                $('#date1').datepicker('setDate', new Date(d));              
            };
        }

        }
    $("#date1").datepicker({
        minDate: new Date(2012, 7 - 1, 8),
        maxDate: new Date(2012, 7 - 1, 28)
    });
    $('#date2').datepicker({
        minDate: new Date(2012, 7 - 1, 9),
        maxDate: new Date(2012, 7 - 1, 28)
    });
    $('#date1,#date2').change(selector);
    $('#calculated').keyup(selector);
});
 
Ersetz die Zahl 86400000 mit 60000 und es sollte nun in Minuten rechnen sofern der Rest des Scriptest stimmt ;)
 
Zurück