我正在尝试为员工创建一个时间表,我将每个事件(事件、非事件)保存为 MongoDB 中的时间戳。如何从给定时间计算员工的事件时间?
{
"_id" : ObjectId("5d8c8dcca4c6010e29140e0e"),
"activityAt" : ISODate("2019-09-26T10:07:05.388+0000"),
"version" : NumberInt(1),
"deleted_at" : null,
"event" : "ACTIVE",
"employeeId" : ObjectId("5d78fba602c9265fc7ad6273"),
"created_at" : ISODate("2019-09-26T10:07:08.479+0000"),
"modified_at" : ISODate("2019-09-26T10:07:08.479+0000")
}
// ----------------------------------------------
{
"_id" : ObjectId("5d8c8dcca4c6010e29140e0f"),
"activityAt" : ISODate("2019-09-26T11:07:05.388+0000"),
"version" : NumberInt(1),
"deleted_at" : null,
"event" : "INACTIVE",
"employeeId" : ObjectId("5d78fba602c9265fc7ad6273"),
"created_at" : ISODate("2019-09-26T11:07:08.481+0000"),
"modified_at" : ISODate("2019-09-26T11:07:08.481+0000")
}
最佳答案
对于每个“事件”条目,从 ISODate 中获取日期并从中减去当前日期(或任何给定时间)。结果将是员工的所有事件时间。
在伪代码中:
active_time = 0
for entry in db:
if entry.event == 'ACTIVE':
active_time = active_time + (current_date - entry.ISODate)
return active_time
您唯一需要做的就是将日期转换为可以减去/添加/等等的内容。一种解决方案是将其转换为小时。
祝你好运!
关于node.js - 计算员工的事件时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58165858/