如何为Primefaces扩展计时器设置起始值

时间:2019-01-25 16:48:54

标签: primefaces timer startup primefaces-extensions

我使用带有以下代码的primefaces扩展计时器:

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

但是我有一个初始值。先前的代码从值00:00:00开始,但是我有一个Java Bean的开始时间。我有一个Date对象,或者是long类型的日期(从1970年开始),这是我要开始的值。

例如我收到了1548434800083或17:47 25/01/2019,我想显示此日期与现在之间的时间。那么如何设置该日期的起始值?我有毫秒,但我可以得到秒,而不是秒。

2 个答案:

答案 0 :(得分:1)

解决方案如下,我有一个Java bean,其中包含以毫秒为单位的日期。我通过Java类Date中的getTime()函数得到它。

我显示带有素语代码的计数器,天文钟:

<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;
    }

它显示持续时间,小时数。我只数小时,没有一天。

答案 1 :(得分:0)

针对您的案例的最佳解决方案是格式化。但是有时候我们需要设置primefaces计时器的起始值:

运行javascript:

PF('timer').currentTimeout = 100;