在Thymelaf中,是否可以将长分钟字段转换为天、小时、分钟?可以在控制器上执行并传递它。但我使用的是一个列表,我必须遍历整个对象,并用新的模型类替换它,以便将分钟值设置为人类可读。
更新@andrewjames答案按预期工作。
对它进行了更多更改以支持复数形式
<div
th:with="days=${(minutes / (60 * 24))},
hours=${(minutes - (days * 60 * 24)) / ( 60)},
minutes=${(minutes - (days * 60 * 24) - (hours * 60))},
daysText=${days > 0? days + (days > 1? 'days ' :'day ') :''},
hoursText=${hours > 0? hours + (hours > 1? 'hrs ':'hr ') :''},
minutesText=${minutes > 0? minutes+ (minutes > 1? 'mins ':'min '):''}"
th:text="${daysText} + ${hoursText} + ${minutesText}">
</div>
您可以使用基本的百里香叶算术运算符。
假设 ${分钟}
包含一个长:
<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