检测并验证AngularJS中的客户端日期更改

时间:2016-12-29 10:26:32

标签: javascript angularjs datetime momentjs

在我的Angularjs应用程序中,我有一个限制:如果用户手动更改系统日期,应用程序将开始使用该日期进行所有UI操作。

我想检测用户是否已将其系统日期手动更改为某个较旧的日期,并将其与存储在我的Cookie中的服务器日期进行比较并向他发送错误。 我尝试使用:

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

但这没效果。 Angular有没有办法做到这一点。

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery触发timeupdate事件。

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

此处#testvid是html元素的id。

答案 1 :(得分:0)

正如我的评论中所述,您可以使用setInterval在特定时间间隔内检查日期更改。它可以在Angular中完成,如下所示:

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忽略时间,你可以根据需要改变条件。