Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript或JQuery中或使用moment.js计算小时、分钟-介于2个日期和时间之间_Javascript_Jquery_Datetime_Momentjs - Fatal编程技术网

在JavaScript或JQuery中或使用moment.js计算小时、分钟-介于2个日期和时间之间

在JavaScript或JQuery中或使用moment.js计算小时、分钟-介于2个日期和时间之间,javascript,jquery,datetime,momentjs,Javascript,Jquery,Datetime,Momentjs,我有一个Razor表单,它有以下字段: Startdate Starttime (24 hr) EndDate EndTime (24hr) BreakDuration (increments of 15 minutes) StartDate和Start Time EndDate和EndTime最终合并到一个SQL DateTime字段中 我需要一个表单中的字段来显示持续时间-因此基本上是开始和结束之间的天、小时、分钟,减去休息持续时间 例如:总时间:36:15小时 当开始时间和结束时间似乎跨

我有一个Razor表单,它有以下字段:

Startdate
Starttime (24 hr)
EndDate
EndTime (24hr)
BreakDuration (increments of 15 minutes)
StartDate和Start Time EndDate和EndTime最终合并到一个SQL DateTime字段中

我需要一个表单中的字段来显示持续时间-因此基本上是开始和结束之间的天、小时、分钟,减去休息持续时间

例如:总时间:36:15小时

当开始时间和结束时间似乎跨越一天时,如果结束日期可以自动递增,这将非常有用。。例如,开始时间为晚上10点->结束时间为上午7点

但不管怎样,这里是我的jsfiddle,它使用的是moment.js

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

// outputs: "48:39:30"

HTML:

    <div class="conthttp://jsfiddle.net/beebul/kwdo9yrj/49/#forkrols">
    <input type="text" style="width:300px" name="momentDurationHours" id="momentDurationHours" readonly="" />&nbsp; 
    <a href="#" id="show">Show Total duration</a>
</div>
    $('#show').click(function () {
    {
        var startDate = '28/10/2010'; //taken from the date and time pickers
        var endDate = '29/10/2010';
        var startTime = '12:00';
        var endTime = '17:00';
        var breakduration = '01:25:00';

        var joinStartDates = startDate + " " + startTime;
        var joinEndDates = endDate + " " + endTime;
        var totalHours = moment(joinEndDates, "DD/MM/YYYY HH:mm").diff(moment(joinStartDates, "DD/MM/YYYY HH:mm"), 'minutes');

        var breaktime = moment.duration(breakduration, 'HH:mm').asMinutes();            
        var takeBreak = totalHours - breaktime;

        //this bit below doesn't work but you get the idea...
        //var totalHoursMinusBreak = moment(takeBreak).format("HH:mm"); //trying to convert mins to HH:mm

        $('input[name="momentDurationHours"]').val(totalHours + " min - break: " + breaktime + "mins = TOTAL AS HRS?? ");
    }
});
我在尝试使用moment.js subtract函数时遇到了麻烦,所以决定先将其转换为分钟,然后尝试将最后的分钟总数转换为HH:mm


非常感谢您提供的提示和建议。

使用moment.js尝试类似的方法

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

// outputs: "48:39:30"

嘿,Sreekesh-需要减去的休息时间呢?根据jsFiddle。。。