Apakah mungkin di Thymeleaf untuk mengubah bidang menit yang panjang menjadi hari, jam, menit? Dimungkinkan untuk melakukannya pada pengontrol dan menyebarkannya. Tapi saya menggunakan daftar dan saya harus mengulangi seluruh objek dan menggantinya dengan kelas model baru hanya untuk menetapkan nilai menit sebagai dapat dibaca manusia.

Perbarui jawaban @andrewjames berfungsi seperti yang diharapkan.

Melakukan sedikit lebih banyak perubahan untuk mendukung bentuk jamak juga

<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
Ismail Iqbal 20 November 2020, 21:01

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan operator aritmatika Thymeleaf dasar.

Dengan asumsi ${minutes} berisi long:

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

Menggunakan th:with untuk membuat nilai sementara membuatnya (sedikit) lebih mudah untuk melihat bagaimana setiap porsi dihitung.

Misalnya, untuk nilai 123456 menit Anda akan mendapatkan:

85 d 17 h 36 m 

Dan selama 123 menit Anda akan mendapatkan:

0 d 2 h 3 m
2
andrewjames 20 November 2020, 19:52