Я использую ag-сетку, и мы используем момент js для обработки времени.Проверьте, не превышает ли разница во времени 30 минут с использованием момента JS/angularjs
Вот сценарий: я получаю последнюю обновленную метку времени с задней стороны (JSON) в unix-время (например, это 1485120726). Моя логика заключается в проверке, если последняя обновленная метка времени меньше 30 минут. Если это так, ячейка должна быть красного цвета. Эта подсветка истечет через 30 минут (возвращается к исходному цветному блоку), если не будет новой ревизии.
Я застрял в этой точке, чтобы проверить разницу между текущей меткой времени и последней обновленной меткой времени.
Вот мой код:
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().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));
}
Но я получаю ошибка 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
, когда я использую $ timeout или interval. Я получаю ошибку, не могу найти время ожидания. даже если я инъекции службы уаг __inject = [ '$ rootScope', '$ компилировать', '$ HTTP', '$ uibModal', '$ тайм-аут' ]; конструктор ( частного $ rootScope, частные $ компилировать, частных $ HTTP, частных $ uibModal, частного тайм-аут; ) – coder
вы превышая объем этого вопроса. обычно то, что вам нужно сделать, это создать новый вопрос. но я могу легко увидеть вашу проблему, изменить 'private timeout' на' private $ timeout' – svarog