fmt:parseNumber 태그 이용. value의 값에 .time 지정하면
Wed Nov 23 13:50:29 KST 2022 과 같은 날짜(문자열 타입)이
1669179029871 과 같은 시작일 이후 ms 단위 숫자값으로 변환됨을 이용
<jsp:useBean id="now" class="java.util.Date"/>
<fmt:parseNumber value="${now.time / (1000*60)}" var="nowfmtTime"/><!-- .time 필수 -->
<fmt:parseNumber value="${commentVO.commentDate.time / (1000*60)}" var="commentDatefmtTime"/><!-- .time 필수 -->
<fmt:parseNumber value="${nowfmtTime - commentDatefmtTime}" var="timeDefference"/>
<c:choose>
<c:when test="${timeDefference <= 10}"><!-- 10분 이하 -->
방금 전
</c:when>
<c:when test="${timeDefference > 10 && timeDefference <= 60}"><!-- 1시간 이하 -->
<fmt:parseNumber value="${timeDefference}" integerOnly="true" var="timeDefference"/>
${timeDefference }분 전
</c:when>
<c:when test="${timeDefference > 60 && timeDefference <= 60*24}"><!-- 24시간 이하 -->
<fmt:parseNumber value="${timeDefference / 60}" integerOnly="true" var="timeDefference"/>
${timeDefference }시간 전
</c:when>
<c:when test="${timeDefference > 60*24 && timeDefference <= 60*24*30}"><!-- 30일 이하 -->
<fmt:parseNumber value="${timeDefference / (60*24)}" integerOnly="true" var="timeDefference"/>
${timeDefference }일 전
</c:when>
<c:when test="${timeDefference > 60*24*30 && timeDefference <= 60*24*365}"><!-- 1년 이하 -->
<fmt:parseNumber value="${timeDefference / (60*24*30)}" integerOnly="true" var="timeDefference"/>
${timeDefference }월 전
</c:when>
<c:when test="${timeDefference > 60*24*365}">
<fmt:parseNumber value="${timeDefference / (60*24*365)}" integerOnly="true" var="timeDefference"/>
${timeDefference }년 전
</c:when>
</c:choose>
참고. 한달 전의 기준을 임의로 30일로 정함. 28,30,31과 같이 구체적으로 정하려면 해당일의 달을 기준으로하는 추가적인 코드 작성 필요
시간을 0으로 변경 후 날짜만으로 계산
https://sowon-dev.github.io/2022/11/02/221103JSP-utilDatefmt/
project) 박스오피스 개봉일 출력 시 시간 제외하고 날짜만으로 계산 필요
<!-- 개봉일
https://sowon-dev.github.io/2022/11/02/221103JSP-utilDatefmt/ -->
<jsp:useBean id="now" class="java.util.Date"/>
<fmt:formatDate var="today" value="${now }" pattern="yyyyMMdd000000"/>
<fmt:parseDate var="nowfmt" value="${today }" pattern="yyyyMMddHHmmss"/>
<fmt:parseNumber value="${nowfmt.time}" var="nowfmtTime"/><!-- .time 필수 -->
<fmt:parseNumber value="${boxOfficeWithStar.openDt.time}" var="openDtfmtTime"/><!-- .time 필수 -->
<fmt:parseNumber value="${(nowfmtTime - openDtfmtTime) / (1000*60*60*24)}" var="timeDefference"/>
<c:choose>
<c:when test="${timeDefference >= 0}">
<div>개봉 ${timeDefference +1 }일째</div>
</c:when>
<c:otherwise>
<div>개봉 ${timeDefference +1 }일전</div>
</c:otherwise>
</c:choose>