计算小时之间的差异
我已经搜索过,并已找到解决方案,但他们不使用日期-Fns或只是不工作,因为他们正在计算天,我只专注于小时同一天。计算小时之间的差异
我试图计算两个日期之间的差异,或者更具体地说,在同一天的几个小时之间的差异,这样我就可以得到有人进入时钟并计算出他们当天工作的小时数。
我使用日期FNS
如果我跑console.log(this.myForm.value.startTime)
我得到14:00
。如果我运行console.log(this.myForm.value.endTime)
我得到16:00
。
这是我的计算小时数的函数。
updateHours() {
var end = dateFns.format(new Date(this.myForm.value.endTime, 'HH:mm'));
var start = dateFns.format(new Date(this.myForm.value.startTime, 'HH:mm'));
var result = dateFns.differenceInMinutes(
new Date(end),
new Date(start)
)
console.log(result);
}
的result
值总是NaN
我在做什么错?
有一个不正确的分析正在进行,因为你只想得到在minutes
的区别,它会更容易遵循这种方法。
设置为end
和start
的值在原始代码中未定义。
在下面的代码片段中,我创建一个新日期,使用日期方法.setHours()
设置小时和分钟。
date.setHours(0, 0, 0); // Set hours, minutes and seconds
var start_time = "14:00";
var end_time = "16:00";
function updateHours() {
var current = new Date();
var start = current.setHours(start_time.split(":")[0], start_time.split(":")[1], 0);
var end = current.setHours(end_time.split(":")[0], end_time.split(":")[1], 0);
console.log(start, end)
var result = dateFns.differenceInMinutes(
end,
start
)
console.log(result);
}
updateHours();
.as-console {
height: 100%;
}
.as-console-wrapper {
max-height: 100% !important;
top: 0;
text-align:center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>
参考文献:
-
我认为这真的很简单,如果你有两个Date
对象,以获得差异从其减去Date.prototype.getTime
(所以不要dateFns格式化尚)
var minutes = Math.abs(start.getTime() - end.getTime())/60000 // display in minutes
您还可以详谈,Math.round(minutes)
希望它有帮助:)
此方法:'VAR端=新日期(this.myForm.value.endTime) '给我'NaN'和这个方法:'var start = this.myForm.value.startTime;'给我这个:'ERROR TypeError:start.getTime不是一个函数'。 – timgavin
很有效,直到我从窗体'this.myForm.value.startTime'得到值,然后返回'NaN'。我甚至尝试'this.myForm.value.startTime作为字符串'没有运气。 – timgavin
@timgavin为什么不只是'this.myForm.value.startTime = this.myForm.value.startTime | “00:00”',这样虚假值就被默认值覆盖了! –
修好了!谢谢:) – timgavin