Javascript MomentJs错误输出

1。

好的,对于第一个问题,我有一个关于时刻的问题。 它不计算正确的时间(我想?)这是我的脚本:

function CalculateTime() { try { var originalStartTime = $('#startTime').val(), originalEndTime = $('#endTime').val(), originalBreakTime = $('#breakTime').val(); // breaking hours and minutes. needed format: HH:mm var startHours = originalStartTime.substring(0, 2).replace(':', ''), startMinutes = originalStartTime.substring(3, 5), endHours = originalEndTime.substring(0, 2).replace(':', ''), endMinutes = originalEndTime.substring(3, 5); // momentJs variables var mStart = moment().hour(startHours).minute(startMinutes), mEnd = moment().hour(endHours).minute(endMinutes), mBreak = moment.duration(originalBreakTime); var result = moment( mEnd - mStart - mBreak).format('HH:mm'); $('#workedHours').val(result + " timmar"); } catch (err) { $('#workedHours').val(err); } 

startTime: 07 00, endTime: 16 00, breakTime 00.00这将导致workingHours为10.00。 这是来自chrome控制台: 在此处输入图像描述

您需要使用减法方法

 function CalculateTime() { try { var originalStartTime = $('#startTime').val(), originalEndTime = $('#endTime').val(), originalBreakTime = $('#breakTime').val(); // breaking hours and minutes. needed format: HH:mm var startHours = originalStartTime.substring(0, 2).replace(':', ''), startMinutes = originalStartTime.substring(3, 5), endHours = originalEndTime.substring(0, 2).replace(':', ''), endMinutes = originalEndTime.substring(3, 5), breakHours = originalBreakTime.substring(0, 2).replace(':', ''), breakMinutes = originalBreakTime.substring(3, 5); // momentJs variables var mStart = moment().hour(startHours).minute(startMinutes), mEnd = moment().hour(endHours).minute(endMinutes), mBreak = moment.duration(breakHours * 60 + +breakMinutes, 'minutes'); var result = mEnd.subtract(mStart).subtract(mBreak).format('HH:mm'); $('#workedHours').val(result + " timmar"); } catch (err) { $('#workedHours').val(err); } } CalculateTime();