2016-12-29 4 views
1

私のAngularjsアプリケーションでは、ユーザーがシステム日付を手動で変更すると、アプリケーションはその日付をすべてのUI操作に使用するという制限があります。AngularJSのクライアントの日付変更の検出と有効化

ユーザーが自分のシステム日付を手動で古い日付に変更したかどうかを検出し、それをクッキーに保存されているサーバー日付と比較してエラーが発生した場合は、 私が使用してみました:

$window.addEventListener('timeupdate', function() { 
    alert('I changed'); 
}); 

が、これは働いていませんでした。 これを行うにはAngularの方法がありますか?

+1

これを確認してください:http://stackoverflow.com/questions/3367505/detecting-changes-to-system-time-in-javascript – superUser

答えて

0

jQueryを使用してtimeupdateイベントをトリガすることができます。

$('#testvid').on('timeupdate', function(){ 
    console.log('the time was updated to: ' + this.currentTime); 
}); 

ここで#testvidはidのhtml要素です。

+0

timeupdateは私がここで見つけたイベントです[link](https:// developer。 mozilla.org/en-US/docs/Web/Events/timeupdate) –

0

私のコメントに記載されているように、setIntervalを使用して特定の時間間隔で日付の変更を確認できます。

var app = angular.module('dateChecker', []); 

app.controller('MainCtrl', function($scope, $interval) { 

    function getTodaysDate(){ 
    var today = new Date(); 
    var dd = today.getDate(); 
    var mm = today.getMonth()+1; //January is 0! 
    var yyyy = today.getFullYear(); 

    if(dd<10) { 
     dd='0'+dd 
    } 

    if(mm<10) { 
     mm='0'+mm 
    } 

    today = mm+'/'+dd+'/'+yyyy; 
    return today; 
    } 

    $scope.oldDate = getTodaysDate(); 

    $interval(function dateChecker() { 
    if($scope.oldDate === getTodaysDate()){ 
     console.log('No change'); 
    } else { 
     console.log('date changed'); 
    } 
    }, 1000); 
}); 

これは毎秒の時間をチェックし、それに応じて更新されます。 時間を無視して上記のdateのみをチェックしています。必要に応じて条件を変更できます。

関連する問題