【发布时间】:2021-12-01 09:35:11
【问题描述】:
我正在尝试计算两个不同日期和时间的总小时数和分钟数:
下面是我的代码:
let startShiftTime = moment(StartTime, ['DD-MM-YYYY h:mm:ss A'])
.utcOffset(0, false)
.format('DD-MM-YYYY hh:mm:ss A');
let endShiftTime = moment(EndTime, ['DD-MM-YYYY h:mm:ss A'])
.utcOffset(0, false)
.format('DD-MM-YYYY hh:mm:ss A');
var TotalSeconds = moment(startShiftTime, 'DD-MM-YYYY hh:mm:ss A')
.utcOffset(0, false)
.diff(
moment(endShiftTime, 'DD-MM-YYYY hh:mm:ss A').utcOffset(0, false),
'seconds',
);
var hours = Math.floor(TotalSeconds / 3600);
var minutes = Math.floor((TotalSeconds / 60) % 60);
console.log(
'startShiftTime: ',
startShiftTime,
' endShiftTime: ',
endShiftTime,
' hours: ',
hours,
' minutes: ',
minutes,
);
我在所有情况下都得到小时和分钟,除了时间差是 1 小时,否则
控制台输出:
startShiftTime: 02-12-2021 09:00:00 AM endShiftTime: 01-12-2021 09:30:00 PM hours: 11 minutes: 30
startShiftTime: 02-12-2021 04:30:00 PM endShiftTime: 02-12-2021 05:00:00 PM hours: -1 minutes: -30
在第二个输出中看到...时差只有 30 分钟..但以小时为单位,我得到了 1
我无法理解我在哪里犯了错误
【问题讨论】:
标签: javascript react-native datetime momentjs