简体   繁体   中英

How to calculate duration in Hour:Minute format from provided Start Hour-Minute to End Hours-Minute?

In Javascript , I have 4 variables with values.

Below are the examples :

var start_hour = 1;
var start_minute = 00;
var end_hour = 6;
var end_minute = 30;

I want to create a javascript function that can calculate duration and print like for above example, the duration output should be 5:30 means, 5 Hours & 30 Minutes .

Please see this JSFiddle http://jsfiddle.net/sajith/LkZC7/

var start_hour = 1;
var start_minute = 00;
var end_hour = 6;
var end_minute = 30;

start_minute = parseInt(start_minute, 10);
end_minute = parseInt(end_minute, 10);

if (start_hour < end_hour ) {
    var start_mins = start_hour * 60 + start_minute;
    var end_mins = end_hour * 60 + end_minute;
    var dur_mins = end_mins - start_mins;
    var dur_hours = Math.floor(dur_mins / 60);
    dur_mins = dur_mins % 60;
} else {
    // Start hour is greater than end hour
}

alert(dur_hours + ":" + dur_mins);
var start_hour = 1;
var start_minute = 00;
var end_hour = 6;
var end_minute = 30;

var start = new Date(2014, 1, 1, start_hour, start_minute, 0, 0);
var end = new Date(2014, 1, 1, end_hour, end_minute, 0, 0);

diffMilliseconds = Date.parse(end) - Date.parse(start);

hours = Math.floor(diff/(1000*60*60));
minutes = (diff%(1000*60*60)) / (1000 * 60);

Without library, supposing start <= end :

var h = end_hour - start_hour;
var m = end_minute - start_minute;
if(start_minute > end_minute){
        var dt = 60 - start_minute + end_minute;
        h = h-1;
        m = dt;
        if(dt>60){
                m = dt%60;
                h = h + 1;
        }
}
document.write(h+" hour(s) and "+m+" minute(s).");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM