首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Momentjs / Angularjs -检查两个日期是否在同一时期- TimeSheet项目

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

Stack Overflow用户
提问于 2018-06-26 01:48:43
回答 1查看 39关注 0票数 0

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

例如:

$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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-26 05:22:02

当然,您可以使用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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51029206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档