我使用带有以下代码的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,我想显示此日期与现在之间的时间。那么如何设置该日期的起始值?我有毫秒,但我可以得到秒,而不是秒。
答案 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;