你好我有如下代码:检查当前的日期/时间匹配定义的时间跨度
angular.module("myApp", []).controller("myController", function($scope) {
$scope.currentOption;
$scope.setCurrentTimespan = function() {
//CODE HERE
};
$scope.timespanList = [{
id: 1,
name: 'morning',
startDate: '19.09.2016 06:00',
endDate: '19.09.2016 11:59'
}, {
id: 2,
name: 'noon',
startDate: '19.09.2016 12:00',
endDate: '19.09.2016 13:29'
}, {
id: 3,
name: 'afternoon',
startDate: '19.09.2016 13:30',
endDate: '19.09.2016 18:29'
}, {
id: 4,
name: 'evening',
startDate: '19.09.2016 18:30',
endDate: '19.09.2016 23:59'
}, {
id: 5,
name: 'night',
startDate: '20.09.2016 00:00',
endDate: '20.09.2016 05:59'
}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myController">
<select ng-options="option as option.name for option in timespanList" ng-model="currentOption"></select>
</div>
我从后台得到了与项的对象为我select
。在这个列表中有一些像早上,中午,下午等时间片。这个时间片有一个startDate和一个endDate,它也来自后端。例如,“早上”的时间跨度有startDate/endDate:[今日] 06:00/[今日] 11:59。所以我想要做的是,当我加载列表并填写select
和ng-options
时,我想从列表中选择与当前时间戳匹配的项目。因此,我必须获取当前日期和时间,例如:19.09.2016 09:45并且在列表中搜索为此时间戳定义的项目并在列表中选择它。所以我必须用当前的日期/时间来检查startDate/endDate。这应该发生在列表加载时。
所以我当地的时间(19.09.2016 09:45)在这一刻的结果将是早上。
有人的想法如何做到这一点?我没有找到任何答案,可以帮助我...谢谢用解决
编辑:
我找到解决这个问题的一个完美的方式:我发现moment.js
,解决了我的要求。将它加入我的网络应用程序后,我开始使用moment.js
的查询和功能来解决我的问题。它的工作原理是这样的:
获取当前时间戳(日,月,年,时,分):
let currentTimestamp = moment(); //for example 19.09.2016 11:30
比我循环throught我阵列的时间跨度,并与moment.js
解析起始日期/结束日期我需要format
DD.MM.YYYY HH:mm
,然后我可以使用moment.js
query
isBetween()
来检查,如果我的currentTimestamp是这样的每一个项目的起始日期/结束日期之间:
this.timespanList.forEach(function(item) {
let startDate = moment(item.startDate, 'DD.MM.YYYY HH:mm'); // for example 19.09.2016 06:00
let endDate= moment(item.endDate, 'DD.MM.YYYY HH:mm'); // for example 19.09.2016 11:59
if(moment(currentTimestamp).isBetween(startDate, endDate)) {
$scope.currentOption = item;
}
});
因此,如果环状项目的条件为真,我可以在我的列表中设置正确的选项。这里有一些moment.js
的链接描述,如何使用它正确 - 它是真棒!
moment.js文档:http://momentjs.com/docs/
moment.js解析:http://momentjs.com/docs/#/parsing/
moment.js查询:http://momentjs.com/docs/#/query/
我希望这是有用的!来自也将起作用的答案的替代解决方案被标记为正确的。感谢和欢呼。
嗨,谢谢你的回答。我找到了一个很好的解决方案,请看我编辑的问题。也许有些东西你也可以使用! Thansk再次。 – MrBuggy
PS:我会将您的解决方案标记为正确的,因为它可以作为moment.js情况下的工作替代解决方案。干杯。 – MrBuggy
谢谢.. :) @MrBuggy –