提问者:小点点

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


在Thymelaf中,是否可以将长分钟字段转换为天、小时、分钟?可以在控制器上执行并传递它。但我使用的是一个列表,我必须遍历整个对象,并用新的模型类替换它,以便将分钟值设置为人类可读。

更新@andrewjames答案按预期工作。

对它进行了更多更改以支持复数形式

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

共1个答案

匿名用户

您可以使用基本的百里香叶算术运算符。

假设 ${分钟} 包含一个长:

<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