2017-10-22 16 views
0

現在の時刻、営業時間、および終了時刻が指定されているビジネスが開いているかどうかを表示しようとしています。ここに私の時間形式があります。現在時刻がAngularjsの開始時刻と終了時刻の間であることを確認します

$scope.open = "1970-01-01T13:00:00.000Z"; // We can ignore the dates 
$scope.close = "1970-01-02T22:00:00.000Z" 

Angularjsでこれを決定するための簡単な&確実な方法はありますか? 「

<div ng-if="currentTime >= open && currentTime < close"></div> 

ような何かが、私はおそらくこれを扱うことができ、いくつかの瞬間のライブラリを発見したが、私は全体のライブラリをインポートするように感じるが、基本的な時間の比較のためにやり過ぎである、とJavaScriptソリューションのほとんどは私が着るに遭遇しましたこの時間形式を処理しないでください。

ご了承ください。

+3

ファーストを比較した24時間営業の文字列&に私の日付をフォーマットされました。これを達成するには、 'new Date( '1970-01-01T13:00:00.000Z')'を使い、比較の前に日付を今日の日付に設定します。例えばhttps://stackoverflow.com/questions/492994/compare-two-dates -with-javascript – Ashish

答えて

1

日付を比較できます。

const isStoreOpen = (currentTime, openTime, closedTime) => currentTime >= openTime && currentTime< closedTime; 
isStoreOpen(Date.now(), new Date('01 01 1986'), new Date('01 01 2021')); //true 
isStoreOpen(Date.now(), new Date('01 01 2018'), new Date('01 01 2021')); //false 
+0

私は、あなたが 'currentTime

1

店舗の状況を直接チェックして真または偽を返す方法を作成できます。

$scope.checkShopStatus = function() { 
    var open = new Date("1970-01-01T13:00:00.000Z"); // We can ignore the dates 
    var close = new Date("1970-01-02T22:00:00.000Z"); 
    var currentDate = new Date(); 
    if (currentDate >= open && currentDate <= close) { 
     return true; 
    } 
    return false; 
}; 

var app = angular.module('myApp', []); 
 
app.controller('MyController', ['$scope', function($scope) { 
 
    $scope.title = 'Hello world'; 
 

 
    $scope.checkShopStatus = function() { 
 
    var open = new Date("1970-01-01T13:00:00.000Z"); // We can ignore the dates 
 
    var close = new Date("1970-01-02T22:00:00.000Z"); 
 
    var currentDate = new Date(); 
 
    if (currentDate >= open && currentDate <= close) { 
 
     return true; 
 
    } 
 
    return false; 
 
    }; 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-controller='MyController' ng-app="myApp"> 
 
    <div>{{title}}</div> 
 
    <div ng-if="checkShopStatus()">Open</div> 
 
    <div ng-if="!checkShopStatus()">close</div> 
 
</div>

0

以下実行しているデモ・コードを確認の回答は便利でしたが、私は日付、時刻を比較していない探していました。私はmoment.jsを使用して終了した後、あなたがjsの日付オブジェクトに強い形式を変換する必要があります

var currentTime = moment(new Date()).format('H:mm'); 
var openTime = moment(business.hours.sunday.open_time).format('H:mm'); 
var closeTime = moment(business.hours.sunday.close_time).format('H:mm'); 

function isStoreOpen(currentTime, openTime, closeTime){ 
    if(currentTime >= openTime && currentTime <= closeTime){ 
    return true; 
    } 
    return false 
} 
関連する問題