gpt4 book ai didi

javascript - Momentjs/Angularjs - 检查 2 个日期是否在同一时期 - TimeSheet 项目

转载 作者:行者123 更新时间:2023-12-03 01:36:53 25 4
gpt4 key购买 nike

我正在开发一个简单的时间表应用程序,我正在尝试实现一个自动计算器,该计算器将总结您每天的时间(星期日、星期一、星期二等...)。我注意到的一个问题是,在某些情况下,用户将输入同一日期时间段内的事件。

例如:

$scope.Example = [
{Description:"Example activity",Start:"2018-06-24 8:00",End:"2018-06-24 10:00",Total:2},
{Description:"Example activity2",Start:"2018-06-24 9:00",End:"2018-06-24 10:00",Total:1},
{Description:"Example activity3",Start:"2018-06-24 10:00",End:"2018-06-24 11:00",Total:1}];

$scope.Calculate_all_entries = function(){

$scope.Total.Sunday = 0;

if($scope.Example){

angular.forEach($scope.Example, function(element){

if(moment(element.Start).format("dddd") === "Sunday"){

$scope.Total.Sunday = $scope.Total.Sunday + element.Total;

}

})

}

}

在这种情况下,总计时间应为 3 小时而不是 4 小时,因为我们不对同一小时内的工作收取费用。我需要实现一个系统来检查日期是否在同一时期内并提供适当的总数。

我在 momentjs 的文档中发现了这一点,它似乎接近我需要的内容,但只采用一个值:

moment('2010-10-19 11:00').isBetween('2010-10-19 10:00', '2010-10-25 00:00'); // true

有人知道任何其他方法来检查开始和结束时间是否与同一天的其他条目在同一时期吗?

最佳答案

当然,您可以使用 momentjs 的 unix() 函数将这些日期时间转换为整数,然后可以轻松地使用该整数来检查时间戳是否位于其他两个时间戳之间。

这是一个例子:

var timeToCheck = moment('2010-10-19 11:00').unix();
var startTime = moment('2010-10-19 10:00').unix();
var endTime = moment('2010-10-25 00:00').unix();
console.log(timeToCheck >= startTime && timeToCheck <= endTime); // true

关于javascript - Momentjs/Angularjs - 检查 2 个日期是否在同一时期 - TimeSheet 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51029206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com