코드 사본은 다음과 같습니다.
// PHP와 동일한 타임 스탬프 형식 기능
// @param {String} 형식
// @param {int} timeStamp 시간이 현재 시간에 기본값을 형식화하는 시간
// @return {String} 형식으로 된 시간 문자열입니다
함수 날짜 (형식, 타임 스탬프) {
var a, jsdate = ((timestamp)? 새 날짜 (timestamp*1000) : 새 날짜 ());
var pad = function (n, c) {
if ((n = n + "") .length <c) {
새 배열 (++ c -n.length) .join ( "0")+n;
} 또 다른 {
리턴 n;
}
};
var txt_weekdays = [ "일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"];
var txt_ordin = {1 : "st", 2 : "nd", 3 : "rd", 21 : "st", 22 : "nd", 23 : "rd", 31 : "st"};
var txt_months = [ "", "1 월", "2 월", "3 월", "4 월", "6 월", "7 월", "7 월", "7 월", "9 월", "10 월", "12 월"];
var f = {
// 낮
D : function () {
리턴 패드 (fj (), 2);
},
D : function () {
t = fl (); 반환 t.substr (0,3);
},
J : function () {
return jsdate.getDate ();
},
L : function () {
return txt_weekdays [fw ()];
},
n : function () {
반환 fw () + 1;
},
S : function () {
txt_ordin [fj ()]을 반환합니까? txt_ordin [fj ()] : 'th';
},
W : function () {
return jsdate.getday ();
},
z : function () {
return (jsdate- 새 날짜 (jsdate.getlyear () + "/1/1"))/864e5 >> 0;
},
// 주
W : function () {
var a = fz (), b = 364 + fl () -a;
var nd2, nd = (새 날짜 (jsdate.getlyear () + "/1/1"). getday () || 7) -1;
if (b <= 2 && ((jsdate.getday () || 7) -1) <= 2 -b) {
반환 1;
} 또 다른{
if (a <= 2 && nd> = 4 && a> = (6 -nd)) {
nd2 = 새 날짜 (jsdate.getlyear () -1 + "/12/31");
반환 날짜 ( "w", math.round (nd2.gettime ()/1000));
} 또 다른{
return (1 + (nd <= 3? ((a + nd) / 7) : (a- (7 -nd)) / 7) >> 0);
}
}
},
// 월
f : function () {
return txt_months [fn ()];
},
m : function () {
리턴 패드 (fn (), 2);
},
m : function () {
t = ff (); 반환 t.substr (0,3);
},
n : function () {
return jsdate.getmonth () + 1;
},
t : function () {
var n;
if ((n = jsdate.getmonth () + 1) == 2) {
반환 28 + fl ();
} 또 다른{
if (n & 1 && n <8 ||! (n & 1) && n> 7) {
반환 31;
} 또 다른{
반환 30;
}
}
},
// 년도
L : function () {
var y = fy ();
return (! (y & 3) && (y % 1e2 ||! (y % 4e2)))? 1 : 0;
},
// o 아직 지원되지 않았습니다
Y : function () {
return jsdate.getPyear ();
},
Y : function () {
return (jsdate.getPyear () + "") .slice (2);
},
// 시간
A : function () {
jsdate.gethours ()> 11? "PM": "AM";
},
A : function () {
return fa (). touppercase ();
},
B : function () {
// Peter Paul Koch :
var off = (jsdate.gettimezoneoffset () + 60)*60;
var theseconds = (jsdate.gethours () * 3600) +
(jsdate.getminutes () * 60) +
jsdate.getSeconds () + off;
var beat = math.floor (Theseconds/86.4);
if (beat> 1000) 비트 -= 1000;
if (beat <0) beat += 1000;
if ((string (beat)). length == 1) beat = "00"+beat;
if ((String (beat)). length == 2) beat = "0"+beat;
리턴 비트;
},
G : function () {
reture jsdate.gethours () % 12 ||를 반환합니다 12;
},
G : function () {
return jsdate.gethours ();
},
H : function () {
리턴 패드 (fg (), 2);
},
H : function () {
리턴 패드 (jsdate.gethours (), 2);
},
I : function () {
리턴 패드 (jsdate.getminutes (), 2);
},
S : function () {
리턴 패드 (jsdate.getSeconds (), 2);
},
// 아직 지원되지 않았습니다
// 타임 존
// 아직 지원되지 않았습니다
// 아직 지원되지 않았습니다
O : function () {
var t = pad (math.abs (jsdate.gettimezoneoffset ()/60*100), 4);
if (jsdate.gettimezoneoffset ()> 0) t = "-" + t; else t = " +" + t;
반환 t;
},
p : function () {
var o = fo ();
return (O.Substr (0, 3) + ":" + O.Substr (3, 2));
},
// t 아직 지원되지 않았습니다
// Z는 아직 지원되지 않았습니다
// 전체 날짜/시간
C : function () {
return fy () + "-" + fm () + "-" + fd () + "t" + fh () + ":" + fi () + ":" + fs () + fp ();
},
// r 아직 지원되지 않았습니다
u : function () {
return math.round (jsdate.gettime ()/1000);
}
};
return format.replace (/[//]? ([a-za-z])/g, function (t, s) {
if (t! = s) {
// 탈출
ret = s;
} else if (f [s]) {
// 날짜 함수가 존재합니다
ret = f [s] ();
} 또 다른{
// 특별한 것은 없습니다
ret = s;
}
반품 반환;
});
}