Как установить начальное значение для таймера расширения простых лиц - PullRequest
0 голосов
/ 25 января 2019

Я использую таймер расширения простых лиц со следующим кодом:

<pe:timer 
    style="color:darkgrey;"
    timeout="1000"
    forward="false" 
    format="HH:mm:ss"/>

Но у меня есть начальное значение.Предыдущий код начинается со значения 00:00:00, но у меня есть время начала из Java-бина.У меня есть объект Date или дата типа long (с 1970 года), который является значением, с которого я хочу начать.

Например, я получил 1548434800083 или 17:47 25/01/2019 и хочу отобразитьвремя между этой датой и сейчас.Итак, как я могу установить мое начальное значение с этой датой?У меня миллисекунды, но я могу получить секунды вместо.

1 Ответ

0 голосов
/ 29 января 2019

Решение заключается в следующем, у меня есть Java-бин, который содержит дату в миллисекундах. Я получаю это с помощью функции getTime () из класса Java Date.

Я показываю свой счетчик, хронометр с кодом простых лиц:

<pe:timer 
   style="color:grey;"
   forward="true" 
   formatFunction="return displayElapsedTime('#{synopticBean.longEnteredTime}');"/>

Этот код вызывает функцию javascript, которая возвращает счетчик формата / хронометр:

function displayElapsedTime(longEnteredTime){
        var now = new Date();
        var elapsedTime = now.getTime() - longEnteredTime;
        var numHours = Math.floor(elapsedTime / 3600000);

        var minutesAndSecondMS = elapsedTime - numHours;
        var minutes = Math.floor((minutesAndSecondMS % (1000 * 60 * 60)) / (1000 * 60));
        var seconds = Math.floor((minutesAndSecondMS % (1000 * 60)) / 1000);

        var innerHtmlText = (('0' + (numHours)).slice(-2) + ":" +('0' + (minutes)).slice(-2) + ":" + ('0' + (seconds)).slice(-2));

        return innerHtmlText;
    }

Отображается продолжительность, количество часов. Я считаю только с часами, без дня.

...