Date의 처리가 까다로운 관계로 개선을 위해서 opensource library인 sugar.js 를 활용 하였다.
※ 공식 사이트: http://sugarjs.com/
공식 사이트 일부 화면이다. Download 한다. 아래와 같이 js 파일을 추가 해 준다.
<script type="text/javascript" src="/javascripts/sugar/sugar-1.3.9.min.js"></script>
Date와 String의 간단한 변환을 위해서 작성 하였다.
추가 소스
whitelife.js
// whitelife.js
// sugar.js is used
Date.prototype.toShortString = function() {
return this.format('{yyyy}-{MM}-{dd}');
}
Date.prototype.toLongString = function() {
return this.format('{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}');
}
Date.prototype.beforeDate = function(regex) {
return this.rewind(regex);
}
Date.prototype.afterDate = function(regex) {
return this.advance(regex);
}
String.prototype.toDate = function() {
return Date.create(this);
}
String.prototype.isBeforeDate = function(endDate) {
return this.toDate().isBefore(endDate.toDate());
}
String.prototype.isAfterDate = function(endDate) {
return this.toDate().isAfter(endDate.toDate());
}
사용 예제
sugar.js 의 Date 라이브러리 와 추가된 함수들의 조합 이다.
var startDate = Date.create('today').beforeDate('5 day').toShortString();
var endDate = Date.create('today').afterDate('5 day').toShortString();
console.log(Date.create('today').toShortString());
console.log(Date.create('today').toLongString());
console.log(Date.create('today').beforeDate('5 day').toLongString());
console.log(Date.create('today').afterDate('5 day').toLongString());
console.log(startDate.isBeforeDate(endDate)); // 시작 날짜가 마지막 날짜 보다 [이전: true, 이후: false]
console.log(startDate.isAfterDate(endDate)); // 시작 날짜가 마지막 날짜 보다 [이전: false, 이후: true]
console.log(startDate.toDate());
console.log(endDate.toDate());
결과
2013-02-18
2013-02-18 12:00:00
2013-02-13 12:00:00
2013-02-23 12:00:00
true
false
Date {Wed Feb 13 2013 00:00:00 GMT+0900 (KST)}
Date {Wed Feb 23 2013 00:00:00 GMT+0900 (KST)}
조금 더 수월하게 작업을 할 수 있다.
'Javascript' 카테고리의 다른 글
Html Tag Default 동작 제거 하기 (0) | 2013.03.06 |
---|---|
jQuery Enter Event 걸기 (0) | 2013.02.18 |
Array 요소 없애는 함수 (0) | 2013.02.05 |
Javascript 페이지내에서 다수의 스크립트 실행하기 (0) | 2012.12.23 |
jQuery로 Ajax 처리시 Array 전송하기 (0) | 2012.12.06 |