私はag-gridを使用していますが、時間の操作にはモーメントjを使用しています。時間差が30分を超えていないかチェックJS/angularjs
ここにシナリオがあります:私はバックエンド(JSON)からunix時(この1485120726のような)の最終更新タイムスタンプを取得しています。私のロジックは、最後に更新されたタイムスタンプが30分未満かどうかを確認することです。その場合、セルは赤色である必要があります。このハイライトは、新しいリビジョンがない限り、30分後に元のカラーブロックに戻ります。
現在のタイムスタンプと最後に更新されたタイムスタンプの違いを確認する方法は、この時点で固まっています。このロジックは、私がdiff
highlightFAA = (params):any => {
var CurrentDate = moment().format('YYYY-MM-DD HH:mm');
var lastRevised = moment.unix(params.data.lastRevised/1000).format('YYYY-MM-DD HH:mm');
console.log("currdate", CurrentDate);
console.log("lastRevised", lastRevised);
console.log("param node", params.node.data.lastRevised);
var ms = moment(lastRevised).diff(moment(currdate));
}
使用してそれを行うための一つの他の方法を試してみました
十分であれば、私はわからない
highlightFAA =(params):any=>{
var CurrentDate = moment().unix(); //val 1485120726-currUnixtime
var lastRevised= (params.node.data.lastRevised/1000); //Val 1484859960--backend is giving value in millisec so converting to sec
console.log("currdate", CurrentDate);
console.log("lastRevised", lastRevised);
console.log("param node", params.node.data.lastRevised);
//30 min is 1800 sec
if(Math.abs(lastRevised- CurrentDate)>1800){
return {'background-color': 'black', 'text-align': 'center', 'font-weight': 'bold'};
} else {
return {'background-color': '#FFEB3B', 'text-align': 'center', 'font-weight': 'bold'};
}
}
しかし、私は取得しています:ここで
は私のコードですdiff
は文字列または数字に使用できません。続行方法がわかりません。いくつかの提案が必要です。
**ここには分単位で差をつけている更新されたコードがあります。
highlightFAA = (params):any=> {
var CurrentDate = moment().tz("UTC").format('YYYY-MM-DD HH:mm');
var lastRevised = moment.unix(params.data.lastRevised/1000).tz("UTC").format('YYYY-MM-DD HH:mm');
var ms = moment(CurrentDate).diff(moment(lastRevised), 'minutes');
if(ms>30) {
return {'background-color': '#FFEB3B', 'text-align': 'center', 'font-weight': 'bold'};
} else {
return {'color': 'black', 'text-align': 'center', 'font-weight': 'bold'};
}
}
しかし、ここでそれは時間差私はページをリロードするたびにチェックしますが、私は必要なのとすぐに超えてcurrtimeと動的前回改定時と変更色の間の時間差を再確認するための方法になっています時間制限は30分です。
を与えた 'しかし、私は必要なの動的currtimeと最終更新時刻との時間差を再度チェックして色を変更する方法にあるものよりも小さいかどうかを確認すぐに30分の制限時間を超えて ' あなたは' $ interval'を使用することができます – svarog
私は$タイムアウトまたは間隔を使用しているときにエラーが発生している名前のタイムアウトを見つけることができません。私は、サービスのvar __inject = [ '$ rootScope'、 は、 を '$コンパイルを' '$のhttp'、 '$ uibModal'、 '$タイムアウト' ]注入していていても、コンストラクタ( プライベート$ rootScope、 プライベート$コンパイル、 民間の$ HTTP、 プライベート$ uibModal、 プライベートタイムアウト; )あなたはこの質問の範囲を超えている – coder
。通常、あなたがすべきことは新しい質問を作成することです。しかし私はあなたの問題を簡単に見ることができます。プライベートタイムアウトをプライベート$タイムアウトに変更してください。 – svarog