소개
new Date() 함수를 사용하면 현재 시간 정보를 얻거나, 날짜 형식으로 변경할 수 있다.
이를 이용해서 시작일과 종료일을 기준으로, 현재 진행률(%)를 구하는 js 파일을 작성해보았다 🐣
시/분/초 단위로 %를 구하고, 100%를 넘어가지않도록했다.
예시
Vue SFC Playground
play.vuejs.org
코드
DispalyProgress.js
const separator = "-"
// ★ 매개변수는 총 2개 (시작일과 종료일)이 필요
// ★ 매개변수는 문자열 타입
// ★ 연/월/일 구분은 separator 변수 값과 일치해주기 ex-> 2023/01/01(x) 2023-01-01(o)
function getPercentToPeriod(startDate, endDate) {
var start = Formatter_StringToDate(startDate);
var end = Formatter_StringToDate(endDate);
var today = new Date();
var total = end - start;
var perc = today - start;
var result = Math.round(perc / total * 100 )
return Number(result < 100 ? result : 100)
}
// 위 함수(getPercentToPeriod)에서 쓰기위해 작성
function Formatter_StringToDate( str ) {
// ( - 헤이픈 기준으로 자르기 ) 1번째 라인에 작성된 내용 ==>> const separator = "-"
var year = Number(str.split( separator )[0])
var month = Number(str.split( separator )[1])
var day = Number(str.split( separator )[2])
return new Date(year, month -1 , day)
}
export { getPercentToPeriod }
App.vue
<template>
<p> 현재 진행률 표시 (시/분/초 단위) </p>
<p>
<!-- 시작일 2023-09-19일부터, 2023-09-20일까지 진행률을 표시 -->
{{ getPercentToPeriod("2023-09-19", "2023-09-20") }} %
</p>
</template>
<script setup>
// DispalyProgress.js 파일에 있는 getPercentToPeriod() 함수 가져오기
import { getPercentToPeriod } from './DisplayProgress.js'
</script>
'💻 FullStack > Vue.js' 카테고리의 다른 글
Vue 날짜 표시 라이브러리 Day.js (1) | 2024.01.14 |
---|---|
Vue 간단하게 이미지 미리보기 만들어보기 (Base64, FileReader) (0) | 2024.01.13 |
Vue CSS height 속성 값에 % 사용해보기 (1) | 2023.09.14 |
Composition API 방식에서 refs를 쓰고싶다면 (0) | 2023.09.12 |
Vue.js 코드 작성할 수 있는 사이트 소개 (Playground) (0) | 2023.08.21 |