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

How to set a start value for a primefaces extension timer

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

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

但是我有一个起始值。前面的代码从值 00:00:00 开始,但我有一个从 Java bean 开始的时间。我有一个 Date 对象,或者 date as long 类型(从 1970 年开始),这是我想要开始的值。

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

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

我用 primefaces 代码显示我的计数器、计时器:

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

该代码调用 javascript 函数,return 格式 counter/chronometer :

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

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

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

运行 javascript:

PF('timer').currentTimeout = 100;