2014. 1. 5. 21:11ㆍ개발/javascript
날짜와 날짜 차이 일수 계산
/*==============================================================
Description : 날짜와 날짜 차이 일수 계산
Arg : start - 문자형 날짜값 (end보다 날짜가 작아야 됨)
end - 문자형 날짜값 (start보다 날짜가 커야 됨)
return : 차이 일수
===============================================================*/
function dayDif(start, end){
var f=document.frm;
var v1=start.split("-");
var v2=end.split("-");
var a1=new Date(v1[0],v1[1],v1[2]).getTime();
var a2=new Date(v2[0],v2[1],v2[2]).getTime();
var b=(a2-a1)/(1000*60*60*24);
return b;
}
시작일과 종료일 정상여부와 시작일이 작은지 검사
/*==============================================================
Description : 시작일과 종료일 정상여부와 시작일이 작은지 검사
Arg : start - 문자형 날짜값
end - 문자형 날짜값
return : true - 정상
flase - 오류
===============================================================*/
function stratEndCheck(start,end){
v1=start.split("-");
v2=end.split("-");
a1=new Date(v1[0],v1[1],v1[2]).getTime();
a2=new Date(v2[0],v2[1],v2[2]).getTime();
if(a1<a2||a2 == ''){
return true;
}else{
return false;
}
}
오늘날짜
//오늘날짜
function getToDay()
{
var date = datToday;
var year = date.getFullYear();
var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
var day = date.getDate();
if (("" + month).length == 1) { month = "0" + month; }
if (("" + day).length == 1) { day = "0" + day; }
return ("" + year + month + day)
}
datToday=date()
intThisYear = Year(datToday); --년도 return
intThisMonth = Month(datToday); --월 return
intThisDay = day(datToday); --일 return
Time 스트링을 자바스크립트 Date 객체로 변환
/**
* Time 스트링을 자바스크립트 Date 객체로 변환
* parameter time: Time 형식의 String
*/
function toTimeObject(time) { //parseTime(time)
var year = time.substr(0,4);
var month = time.substr(4,2) - 1; // 1월=0,12월=11
var day = time.substr(6,2);
var hour = time.substr(8,2);
var min = time.substr(10,2);
return new Date(year,month,day,hour,min);
}
Date 객체를 Time 스트링으로 변환
/**
* 자바스크립트 Date 객체를 Time 스트링으로 변환
* parameter date: JavaScript Date Object
*/
function toTimeString(date) { //formatTime(date)
var year = date.getFullYear();
var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
var day = date.getDate();
var hour = date.getHours();
var min = date.getMinutes();
if (("" + month).length == 1) { month = "0" + month; }
if (("" + day).length == 1) { day = "0" + day; }
if (("" + hour).length == 1) { hour = "0" + hour; }
if (("" + min).length == 1) { min = "0" + min; }
return ("" + year + month + day + hour + min)
}
월의 끝 일자 얻기 (말일 구하기)
//월의 끝 일자 얻기
function getEndDate(datestr){
//널인지?
if(isEmpty(datestr)){
return null;
}
//숫자인지?
if(!isNum(datestr)){
return null;
}
//길이가 8자리?
if(datestr.length != 6){
return null;
}
var yy = Number(datestr.substring(0,4));
var mm = Number(datestr.substring(4,6));
//윤년 검증
var boundDay = "";
if(mm != 2){
var mon=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
boundDay = mon[mm-1];
} else {
if (yy%4 == 0 && yy%100 != 0 || yy%400 == 0){
boundDay = 29;
}else {
boundDay = 28;
}
}
return boundDay;
}
Time이 현재시각 이후(미래)인지 체크
/**
* Time이 현재시각 이후(미래)인지 체크
*/
function isFutureTime(time) {
return (toTimeObject(time) > new Date());
}
Time이 현재시각 이전(과거)인지 체크
/**
* Time이 현재시각 이전(과거)인지 체크
*/
function isPastTime(time) {
return (toTimeObject(time) < new Date());
}
주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴
/**
* 주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴
* ex) var time = form.time.value; //'20000101000'
* alert(shiftTime(time,0,0,-100,0));
* => 2000/01/01 00:00 으로부터 100일 전 Time
*/
function shiftTime(time,y,m,d,h) { //moveTime(time,y,m,d,h)
var date = toTimeObject(time);
date.setFullYear(date.getFullYear() + y); //y년을 더함
date.setMonth(date.getMonth() + m); //m월을 더함
date.setDate(date.getDate() + d); //d일을 더함
date.setHours(date.getHours() + h); //h시를 더함
return toTimeString(date);
}
두 Time이 몇 개월 차이나는지 구함
/**
* 두 Time이 몇 개월 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getMonthInterval(time1,time2) { //measureMonthInterval(time1,time2)
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var years = date2.getFullYear() - date1.getFullYear();
var months = date2.getMonth() - date1.getMonth();
var days = date2.getDate() - date1.getDate();
return (years * 12 + months + (days >= 0 ? 0 : -1) );
}
두 Time이 며칠 차이나는지 구함
/**
* 두 Time이 며칠 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getDayInterval(time1,time2) {
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var day = 1000 * 3600 * 24; //24시간
return parseInt((date2 - date1) / day, 10);
}
두 Time이 몇 시간 차이나는지 구함
/**
* 두 Time이 몇 시간 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getHourInterval(time1,time2) {
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var hour = 1000 * 3600; //1시간
return parseInt((date2 - date1) / hour, 10);
}
현재 시각을 Time 형식으로 리턴
/**
* 현재 시각을 Time 형식으로 리턴
*/
function getCurrentTime() {
return toTimeString(new Date());
}
현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
/**
* 현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
*/
function getRelativeTime(y,m,d,h) {
return shiftTime(getCurrentTime(),y,m,d,h);
}
현재 年을 YYYY형식으로 리턴
/**
* 현재 年을 YYYY형식으로 리턴
*/
function getYear() {
return getCurrentTime().substr(0,4);
}
현재 月을 MM형식으로 리턴
/**
* 현재 月을 MM형식으로 리턴
*/
function getMonth() {
return getCurrentTime().substr(4,2);
}
현재 日을 DD형식으로 리턴
/**
* 현재 日을 DD형식으로 리턴
*/
function getDay() {
return getCurrentTime().substr(6,2);
}
현재 時를 HH형식으로 리턴
/**
* 현재 時를 HH형식으로 리턴
*/
function getHour() {
return getCurrentTime().substr(8,2);
}
일에 대한 요일 찾기
/**
* 일에 대한 요일 찾기
* ex) alert('오늘은 ' + getDayOfWeek() + '요일입니다.');
*/
function getDayOfWeek() {
var now = new Date();
var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
var week = new Array('일','월','화','수','목','금','토');
return week[day];
}
특정날짜의 요일을 구한다
/**
* 특정날짜의 요일을 구한다.
*/
function getDayOfWeek(time) {
var now = toTimeObject(time);
var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
var week = new Array('일','월','화','수','목','금','토');
return week[day];
}
유효하는(존재하는) Time 인지 체크
/**
* 유효하는(존재하는) Time 인지 체크
* ex) var time = form.time.value; //'200102310000'
* if (!isValidTime(time)) {
* alert("올바른 날짜가 아닙니다.");
* }
*/
function isValidTime(time) {
var year = time.substring(0,4);
var month = time.substring(4,6);
var day = time.substring(6,8);
var hour = time.substring(8,10);
var min = time.substring(10,12);
if (parseInt(year,10) >= 1900 && isValidMonth(month) &&
isValidDay(year,month,day) && isValidHour(hour) &&
isValidMin(min)) {
return true;
}
return false;
}
유효한(존재하는) 시(時)인지 체크
/**
* 유효한(존재하는) 시(時)인지 체크
*/
function isValidHour(hh) {
var h = parseInt(hh,10);
return (h >= 1 && h <= 24);
}
유효한(존재하는) 분(分)인지 체크
/**
* 유효한(존재하는) 분(分)인지 체크
*/
function isValidMin(mi) {
var m = parseInt(mi,10);
return (m >= 1 && m <= 60);
}
유효한(존재하는) 월(月)인지 체크
function isValidMonth(mm) {
var m = parseInt(mm,10);
return (m >= 1 && m <= 12);
}
유효한(존재하는) 일(日)인지 체크
/**
* 유효한(존재하는) 일(日)인지 체크
*/
function isValidDay(yyyy, mm, dd) {
var m = parseInt(mm,10) - 1;
var d = parseInt(dd,10);
var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
end[1] = 29;
}
return (d >= 1 && d <= end[m]);
}
'개발 > javascript' 카테고리의 다른 글
The classList API (0) | 2014.09.16 |
---|---|
$.ajax beforeSend (0) | 2014.01.12 |
Google maia.js - the "Twitter Bootstrap" made by Google with Closure (0) | 2013.09.04 |
[canvas] 간단히 만들어보는 HTML5 애니메이션 (0) | 2013.08.25 |
쿠키에 대한 정보 (0) | 2011.12.22 |