在thymeleaf中将分钟转换为分钟小时和天

axr492tv  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(478)

在thymeleaf中,是否可以将长分钟字段转换为天、小时、分钟?可以在控制器上执行并传递。但我使用的是一个列表,我必须遍历整个对象,并用一个新的模型类替换它,以便将minutes值设置为人类可读的。
update@andrewjames answer按预期工作。
对它做了更多的修改来支持复数

<div
   th:with="days=${(minutes / (60 * 24))},
            hours=${(minutes - (days  * 60 * 24)) / ( 60)},
            minutes=${(minutes - (days * 60 * 24) - (hours * 60))},
            daysText=${days &gt; 0? days + (days &gt; 1? 'days ' :'day ') :''},
            hoursText=${hours &gt; 0? hours + (hours &gt; 1? 'hrs ':'hr ') :''},
            minutesText=${minutes &gt; 0? minutes+ (minutes &gt; 1? 'mins ':'min '):''}"
   th:text="${daysText} + ${hoursText} + ${minutesText}">
</div>
s2j5cfk0

s2j5cfk01#

您可以使用基本的thymeleaf算术运算符。
假设 ${minutes} 包含 long :

<div th:with="days=${minutes / (60 * 24)},
              hours=${(minutes - (days * 60 * 24)) / ( 60)}"
     th:text="${days} + ' d ' 
              + ${hours} + ' h ' 
              + ${minutes} % 60 + ' m '">
</div>

使用 th:with 创建临时值可以(稍微)更容易地看到如何计算每个部分。
例如,对于值123456分钟,您将得到:

85 d 17 h 36 m

在123分钟内,您将得到:

0 d 2 h 3 m

相关问题