>웹 프론트엔드 >JS 튜토리얼 >확장된 JavaScript 날짜 메서드 구현 코드(프로토타입)_javascript 기술

확장된 JavaScript 날짜 메서드 구현 코드(프로토타입)_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:15:481135검색

최근 프로젝트의 일부 기능이 재구축되고 있으며 프런트 엔드는 기본적으로 원래 디자인을 뒤집어 놓았고 지난 6개월 동안의 축적을 바탕으로 새로운 솔루션이 있습니다. 요즘 프론트 엔드를 리팩토링하고 디자인하고 있는데 몇 가지 문제에 직면했습니다. 이 모듈의 주 목적이 시간 제어이기 때문에 많은 수의 js Date 객체를 운용하지만, 네이티브 js Date 메소드가 너무 적어 운용이 너무 불편합니다. 그래서 저는 Date의 프로토타입을 확장할 계획입니다.

저는 오랫동안 C# 개발에 참여해 왔으며 C#이 제 생각에 영향을 미쳤습니다. C#에서는 DateTime의 연산이 매우 편리해서 js의 Date를 확장하는데 사용했습니다.

코드 복사 코드는 다음과 같습니다.

//지정된 밀리초 수를 추가합니다. 이 인스턴스 Value on
Date.prototype.addMilliseconds = function (value) {
var millisecond = this.getMilliseconds();
this.setMilliseconds(millisecond value)
return this; };
//이 인스턴스의 값에 지정된 초 수를 추가합니다.
Date.prototype.addSeconds = function (value) {
var second = this.getSeconds()
this. setSeconds(두 번째 값);
return this;
};
//이 인스턴스의 값에 지정된 시간(분)을 추가합니다.
Date.prototype.addMinutes = function(value) {
var hour = this.addMinutes();
this.setMinutes(분 값);
return this;
}
//이 인스턴스의 값에 추가하세요
Date.prototype.addHours = function (value) {
var hour = this.getHours();
this.setHours(hour value)
return this; // 이 인스턴스의 값에 지정된 일수를 더합니다.
Date.prototype.addDays = function (value) {
var date = this.getDate()
this.setDate(date value) ;
return this;
};
//이 인스턴스의 값에 지정된 주 수를 추가합니다.
Date.prototype.addWeeks = function(value) {
return this.addDays (값 * 7);
};
//이 인스턴스의 값에 지정된 개월 수를 추가합니다.
Date.prototype.addMonths = function (value) {
var Month = this. getMonth() ;
this.setMonth(month value);
return this;
}
//이 인스턴스의 값에 지정된 연도를 추가합니다.
Date.prototype. addYears = function (value) {
var year = this.getFullYear();
this.setFullYear(연도 값)
return this;
}//날짜 표시 형식 =" yyyy-MM-dd hh:mm:ss";
Date.prototype.format = 함수(형식) {
var o = {
"M ": this.getMonth() 1, / /월
"d ": this.getDate(), //일
"h ": this.getHours(), //시간
"m ": this.getMinutes(), //분
"s ": this.getSeconds(), //초
"q ": Math.floor((this.getMonth() 3) / 3), //quarter
"S": this .getMilliseconds () //밀리초
}
if (/(y )/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() "") .substr (4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" k ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" o[k]).substr(("" o[k]).length )) ;
}
}
반환 형식;
}


사용 방법에 대해서는 더 말할 필요가 없을 것 같습니다.



코드 복사
코드는 다음과 같습니다. var date = new Date() date.addHours(1);
날짜 .addYears(2);
document.write(date.format('yyyy-MM-dd hh:mm:ss'))

🎜>이 확장 방법이 모든 사람에게 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.