Front/JavaScript

날짜 정규식 이용하여 변경 참고

KangE 2018. 11. 12. 16:40
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>ISO 8601 날짜 변환</title>
</head>
<body>
<form>
<p>Datestring in ISO 8601 format: <input type="text" id="datestring"/></p>
</form>
<button id="dateSubmit">Convert Date</button>
<div id="result"></div>
<script type="text/javascript">
document.getElementById("dateSubmit").onclick=function(){
var dtstr = document.getElementById("datestring").value;
var convdate = convertISO8601toDate(dtstr);
document.getElementById("result").innerHTML=convdate;
}

function convertISO8601toDate(dtstr) {
//숫자를 제외한 모든 문자를 공백으로 대체
dtstr = dtstr.replace(/\D/g," ");

//문자열 끝에 있는 모든 공백 제거
dtstr = dtstr.replace(/\s+$/,"");

//공백을 기준으로 분리
var dtcomps = dtstr.split(" ");

//모든 ISO 8601 날짜가 그대로 변환 가능한 것은 아님
// 월, 일이 없으면 유효하지 않음
if (dtcomps.length < 4) {
dtcomps[3] = 0;
dtcomps[4] = 0;
dtcomps[5] = 0;
}
//ISO 8601에 따라 월 수정
dtcomps[1]--;

var convdt = new Date(Date.UTC.apply(null, dtcomps));

return convdt.toUTCString();
}
</script>
</body>
</html>