你好我有如下代碼:檢查當前的日期/時間匹配定義的時間跨度
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 –