[JavaScript] 날짜 관련 유용 함수 총 정리(feat.String to Date)
2019. 12. 28. 21:53
반응형
입력한 날짜(yyyyMMdd)가 유효한 날짜인지 검사
function is_valid_date(date_str)
{
var yyyyMMdd = String(date_str);
var year = yyyyMMdd.substring(0,4);
var month = yyyyMMdd.substring(4,6);
var day = yyyyMMdd.substring(6,8);
if (!is_number(date_str) || date_str.length!=8)
return false;
if (Number(month)>12 || Number(month)<1)
return false;
if (Number(last_day(date_str))<day)
return false;
return true;
}
yyyy-MM-dd 날짜 문자열을 Date형으로 반환
function to_date2(date_str)
{
var yyyyMMdd = String(date_str);
var sYear = yyyyMMdd.substring(0,4);
var sMonth = yyyyMMdd.substring(5,7);
var sDate = yyyyMMdd.substring(8,10);
//alert("sYear :"+sYear +" sMonth :"+sMonth + " sDate :"+sDate);
return new Date(Number(sYear), Number(sMonth)-1, Number(sDate));
}
일 차이 : date2(일) - date1(일)
function between_date(date1, date2)
{
var y1970 = new Date(1970, 0, 1).getTime();
var time1 = null;
var time2 = null;
if(date1.length > 8)
time1 = to_date2(date1).getTime() - y1970;
else
time1 = to_date(date1).getTime() - y1970;
if(date2.length > 8)
time2 = to_date2(date2).getTime() - y1970;
else
time2 = to_date(date2).getTime() - y1970;
var per_day = 1000 * 60 * 60 * 24; // 1일 밀리초
return Math.floor(time1/per_day) - Math.floor(time2/per_day);
}
yyyyMMdd 날짜 문자열을 Date형으로 반환
function to_date(date_str)
{
var yyyyMMdd = String(date_str);
var sYear = yyyyMMdd.substring(0,4);
var sMonth = yyyyMMdd.substring(4,6);
var sDate = yyyyMMdd.substring(6,8);
return new Date(Number(sYear), Number(sMonth)-1, Number(sDate));
}
yyyyMMdd 날짜문자열을 gubun으로 포맷을 변경
function to_date_format(date_str, gubun)
{
var yyyyMMdd = String(date_str);
var sYear = yyyyMMdd.substring(0,4);
var sMonth = yyyyMMdd.substring(4,6);
var sDate = yyyyMMdd.substring(6,8);
return sYear + gubun + sMonth + gubun + sDate;
}
Date형을 yyyyMMdd형의 문자열로 변환
function get_date_str(date)
{
var sYear = date.getFullYear();
var sMonth = date.getMonth() + 1;
var sDate = date.getDate();
sMonth = sMonth > 9 ? sMonth : "0" + sMonth;
sDate = sDate > 9 ? sDate : "0" + sDate;
return sYear + sMonth + sDate;
}
Date형을 구분자로 구분된 형식의 날짜 문자열 변환
function get_date_str_gubun(date, gubun)
{
var sYear = date.getFullYear();
var sMonth = date.getMonth() + 1;
var sDate = date.getDate();
sMonth = sMonth > 9 ? sMonth : "0" + sMonth;
sDate = sDate > 9 ? sDate : "0" + sDate;
return sYear + gubun + sMonth + gubun + sDate;
}
오늘 날짜를 yyyyMMdd형의 문자열로 변환
function get_today()
{
return get_date_str(new Date());
}
주어진 날짜가 윤년인지를 검사
function is_leap_year(date_str)
{
var year = date_str.substring(0,4);
if (year%4 == 0)
{
if (year%100 == 0)
return (year%400 == 0);
else
return true;
}
else
return false;
}
주어진 날짜(yyyyMMdd, yyyyMM) 그 달의 마지막 날짜를 반환
function last_day(date_str)
{
var yyyyMMdd = String(date_str);
var days = "31";
var year = yyyyMMdd.substring(0,4);
var month = yyyyMMdd.substring(4,6);
if (Number(month) == 2)
{
if (is_leap_year(year+month+"01"))
days = "29";
else
days = "28";
}
else if (Number(month) == 4 || Number(month) == 6 || Number(month) == 9 || Number(month) == 11)
days = "30";
return days;
}
오늘 날짜 중 연도 반환
function get_today_year()
{
var today = new Date();
return today.getYear();
}
오늘 날짜 중 Month반환. format: MM
function get_today_month()
{
var today = new Date();
return (today.getMonth()+1) > 9 ? (today.getMonth()+1) : "0" + (today.getMonth()+1)
}
반응형
'JavaScript' 카테고리의 다른 글
[jQuery || JavaScript] HTML + jQuery Event 총 정리 (0) | 2020.03.31 |
---|---|
[jQuery || JavaScript] title 속성 다루기 정리 및 버그 해결 (0) | 2020.03.25 |
[jQuery] Class 관련 함수,문법 총 정리 (0) | 2019.12.15 |
[jQuery || JavaScript] 비밀번호 유효성 검사 문법 총 정리(feat.정규식) (0) | 2019.12.11 |
[JavaScript] JSON 데이터 다루기 문법 총 정리 (6) | 2019.11.15 |