友
我想计算两次之间的差异。例如,我有
var workedHours = '05:00:00';
var defaultWorkDay = '08:00:00';
所以我需要计算workingHours - defaultWorkDay并期望'-03:00:00'结果。
我尝试过moment.js但没有成功。
你有什么建议吗?
答案 0 :(得分:1)
我从未使用过moment.js,但我认为这对你有用:
var defaultWorkDay = '08:00:00';
var workedHours = '05:00:00';
var a = moment.duration(defaultWorkDay);
var b = moment.duration(workedHours);
console.log( [ b.subtract(a).hours(), b.subtract(a).minutes(), b.subtract(a).seconds() ]
) // [-3:0:0]

<script src="http://momentjs.com/downloads/moment.min.js"></script>
&#13;
答案 1 :(得分:0)
如果您确定格式始终为hours:minutes:secnodes
,则可以this执行此操作...:
var start = "05:00:00";
var end = "08:00:00";
var startArr = start.split(':');
var endArr = end.split(':');
var diffInSeconds = 0
+ ( endArr[0] - startArr[0] ) * 3600
+ ( endArr[1] - startArr[1] ) * 60
+ ( endArr[2] - startArr[2] ) ;
console.log ( 'The difference is : ' + diffInSeconds + ' seconds.');
// => The difference is 10800 seconds.
答案 2 :(得分:0)
通过在日期前面添加日期(如下所示),将您的小时数转换为日期,然后使用Date对象上的.getTime()进行数学运算。然后将这些毫秒转换为您的小时数,或者您想要的任何其他时间单位。
var date1 = new Date("2000-01-01 05:00:00");
var date2 = new Date("2000-01-01 08:00:00");
var msTimeOffset = date1.getTime() - date2.getTime();
var hourTimeOffset = msTimeOffset / 1000 / 60 / 60;
expect(hourTimeOffset).toBe(-3); // passes