2016-12-02 1 views
0

Я хочу получать уведомление о смене системного часа. Как с 9 утра до 10 утра или с 5 вечера до 6 вечера. В основном в моем приложении я хочу поменять дисплей на почасовой основе. Я знаю, что могу получить изменения, рассчитывая вручную. Мне просто интересно, есть ли какой-либо другой способ, поэтому я могу получить уведомление, когда системный час изменится автоматически.Получить событие смены часового пояса в Угловом 2

ответ

2

Для этого нет углового2, но вы можете создать свой собственный.

Вот простой сервис, чтобы продемонстрировать, как это может быть сделано:

@Injectable() 
class TimeNotifyService { 

    private _lastHour; 
    private _lastMinute; 
    private _lastSecond; 

    public hourChanged = new Subject<number>(); 
    public minuteChanged = new Subject<number>(); 
    public secondChanged = new Subject<number>(); 

    constructor() { 
    setTimeout(() => this.timer(), 2000); // just a delay to get first hour-change.. 
    } 

    private timer() { 
    const d = new Date(); 
    const curHour = d.getHours(); 
    const curMin = d.getMinutes(); 
    const curSec = d.getSeconds(); 

    if (curSec != this._lastSecond) { 
     this.secondChanged.next(curSec); 
     this._lastSecond = curSec; 
    } 

    if (curMin != this._lastMinute) { 
     this.minuteChanged.next(curMin); 
     this._lastMinute = curMin; 
    } 

    if (curHour != this._lastHour) { 
     this.hourChanged.next(curHour); 
     this._lastHour = curHour; 
    } 

    // timeout is set to 250ms JUST to demonstrate the seconds-change.. 
    // if only hour-changes are needed, there is NO reason to check that often ! :) 
    setTimeout(() => this.timer(), 250); 
    } 
} 

демо: https://plnkr.co/edit/QJCSnlMKpboteXbIYzqt?p=preview

+0

Хорошо. Спасибо, что ответили. –

+0

Не могли бы вы рассчитать разницу до следующего полного часа, а затем установить тайм-аут на это расстояние вместо проверки 4 раза в секунду, если час изменился? –

+0

Несомненно, его просто для секунд-демо. :) Я поставлю комментарий к этой строке! – mxii

Смежные вопросы