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

如何设置primefaces扩展计时器的起始值,primefaces,timer,startup,primefaces-extensions,Primefaces,Timer,Startup,Primefaces Extensions,我将primefaces扩展计时器与以下代码一起使用: <pe:timer style="color:darkgrey;" timeout="1000" forward="false" format="HH:mm:ss"/> 但我有一个起始值。前面的代码从值00:00:00开始,但我有一个从JavaBean开始的时间。我有一个Date对象,或者Date as long类型(从1970年开始),这是我想要开始的值 例如,我得到了15484348

我将primefaces扩展计时器与以下代码一起使用:

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

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


例如,我得到了1548434800083或2019年1月25日17:47,我想显示从这个日期到现在的时间。那么我如何用这个日期设置我的开始值呢?我得到了毫秒,但我可以得到秒,而不是。

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

我显示我的计数器,带有primefaces代码的计时器:

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

它显示一个持续时间,即小时数。我只计算小时,不计算一天。

对于您的案例来说,最好的解决方案是格式化。但有时我们需要设置primefaces定时器的起始值:

运行javascript:

PF('timer').currentTimeout = 100;

为什么不使用showcase中的“formatFunction”属性:。它将允许您获取当前值并以任何方式操纵和显示它。所以你可以从你的“开始”日期开始做你自己的数学来显示你想要的任何东西。好的,我理解你的意思,谢谢你的示例链接。我有一个来自Java bean的值,比如“#{synopticPipidBean.referenceTime}”;我将它赋给如下函数:formatFunction=“returnformatme('#{synopticBean.longeneredtime}')”,但我的计数器不计数。我的错误是什么?我想你在javascript函数中通过了计时器的当前值。你必须做数学运算,然后从日期值中减去该值,进行倒计时。如果你只是像上面那样做,它只是一遍又一遍地显示你的相同日期。顺便说一句,我是100%的。我还讨论了formatFunction解决方案
PF('timer').currentTimeout = 100;