PageSourceSearch

https://www.shoplinker.co.kr/include/jsNew/date.js

js shoplinker.co.kr collected 2026-10-05 07:16:40 UTC 6,167 bytes, 253 lines download raw bytes

1/******************************************************************************
2Date Object È®Àå
3******************************************************************************/
4
5Date.prototype.tempDate = null;
6
7// ³¯Â¥[ÀÏ] ´õÇϱâ
8Date.prototype.addDays = function (n) {
9	this.setDate(this.getDate() + n);
10	this.tempDate = this.getDate();
11};
12
13// ³¯Â¥[¿ù] ´õÇϱâ
14Date.prototype.addMonths = function (n) {
15	if (this.tempDate == null) {
16		this.tempDate = this.getDate();
17	}
18	this.setDate(1);
19	this.setMonth(this.getMonth() + n);
20	this.setDate(Math.min(this.tempDate, this.getMaxDays()));
21};
22
23// ³¯Â¥[¿¬] ´õÇϱâ
24Date.prototype.addYears = function (n) {
25	if (this.tempDate == null) {
26		this.tempDate = this.getDate();
27	}
28	this.setDate(1);
29	this.setFullYear(this.getFullYear() + n);
30	this.setDate(Math.min(this.tempDate, this.getMaxDays()));
31};
32
33// ¿ùÀÇ ¸¶Áö¸· ³¯Â¥ ±¸Çϱâ
34Date.prototype.getMaxDays = function() {
35	var tmpDate = new Date(Date.parse(this)),
36		d = 28, m;
37	m = tmpDate.getMonth();
38	d = 28;
39	while (tmpDate.getMonth() == m) {
40		d ++;
41		tmpDate.setDate(d);
42	}
43	return d - 1;
44};
45
46// ¿ùÀÇ 1ÀÏ ¿äÀÏ ±¸Çϱâ
47Date.prototype.getFirstDay = function() {
48	var tmpDate = new Date(Date.parse(this));
49	tmpDate.setDate(1);
50	return tmpDate.getDay();
51};
52
53// ÁÖÀÇ Ã¹¹øÂ° ³¯Â¥ ±¸Çϱâ (ÁÖ´Â ÀÏ¿äÀϺÎÅÍ ½ÃÀÛ)
54Date.prototype.getFirstDateOfWeek = function() {
55	var tmpDate = new Date(Date.parse(this));
56	tmpDate.addDays(tmpDate.getDay() * -1);
57	return tmpDate;
58};
59
60// ÇØ´ç ¿¬µµ¿¡¼­ ¸î¹øÂ° ÁÖÀÎÁö
61Date.prototype.getWeekNumber = function() {
62	var tempDate = new Date(this);
63	tempDate.setHours(0,0,0,0);
64	tempDate = tempDate.getFirstDateOfWeek();
65	var firstDate = new Date(tempDate.getFullYear(), 0, 1, 0, 0, 0, 0);
66	firstDate = firstDate.getFirstDateOfWeek();
67	if(firstDate.getFullYear() != tempDate.getFullYear())
68		firstDate.addDays(7);
69	return Math.floor((tempDate.valueOf() - firstDate.valueOf()) / (604800000)) + 1;
70};
71
72// ÇØ´ç ¿ù¿¡¼­ ¸î¹øÂ° ÁÖÀÎÁö
73Date.prototype.getWeekNumberOfMonth = function() {
74	var tempDate = new Date(this);
75	tempDate = tempDate.getFirstDateOfWeek();
76	var weekNum = 0;
77	var currentMonth = tempDate.getMonth();
78	while( tempDate.getMonth() == currentMonth )
79	{
80		weekNum++;
81		tempDate.addDays(-7);
82	}
83	return weekNum;
84};
85
86// ÇØ´ç ¿¬µµ¿¡¼­ ¸î¹øÂ° ÀÏÀÎÁö
87Date.prototype.getDayOfYear = function() {
88	var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
89	var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
90	var time = now - then;
91	return Math.floor(time / 24*60*60*1000);
92};
93
94/******************************************************************************
95Date °ü·Ã ÇÔ¼ö
96******************************************************************************/
97
98// Date Object ¸¸µé±â
99function parseDate(date, format)
100{
101	date = (typeof(date) == 'undefined') ? new Date() : date;
102	format = (typeof(format) == 'undefined') ? 'Y-m-d' : format;
103
104	if (date.constructor == Date) {
105		return new Date(date);
106	}
107	var parts = date.split(/\W+/);
108	var against = format.split(/\W+/), d, m, y, h, min, now = new Date();
109	for (var i = 0; i < parts.length; i++) {
110		switch (against[i]) {
111			case 'd':
112			case 'e':
113				d = parseInt(parts[i],10);
114				break;
115			case 'm':
116				m = parseInt(parts[i], 10)-1;
117				break;
118			case 'Y':
119			case 'y':
120				y = parseInt(parts[i], 10);
121				y += y > 100 ? 0 : (y < 29 ? 2000 : 1900);
122				break;
123			case 'H':
124			case 'I':
125			case 'k':
126			case 'l':
127				h = parseInt(parts[i], 10);
128				break;
129			case 'P':
130			case 'p':
131				if (/pm/i.test(parts[i]) && h < 12) {
132					h += 12;
133				} else if (/am/i.test(parts[i]) && h >= 12) {
134					h -= 12;
135				}
136				break;
137			case 'M':
138				min = parseInt(parts[i], 10);
139				break;
140		}
141	}
142	return new Date(
143		y === undefined ? now.getFullYear() : y,
144		m === undefined ? now.getMonth() : m,
145		//d === undefined ? now.getDate() : d,
146		d === undefined ? 1 : d,
147		h === undefined ? now.getHours() : h,
148		min === undefined ? now.getMinutes() : min,
149		0
150	);
151}
152
153// Date Ãâ·Â Çü½Ä
154function formatDate(date, format)
155{
156	date = (typeof(date) == 'undefined') ? new Date() : date;
157
158	if (date.constructor == String) {
159		date = parseDate(date);
160	}
161
162	var m = date.getMonth();
163	var d = date.getDate();
164	var y = date.getFullYear();
165	var wn = date.getWeekNumber();
166	var wm = date.getWeekNumberOfMonth();
167	var w = date.getDay();
168	var s = {};
169	var hr = date.getHours();
170	var pm = (hr >= 12);
171	var ir = (pm) ? (hr - 12) : hr;
172	var dy = date.getDayOfYear();
173	if (ir == 0) {
174		ir = 12;
175	}
176	var min = date.getMinutes();
177	var sec = date.getSeconds();
178	var parts = format.split(''), part;
179	for ( var i = 0; i < parts.length; i++ ) {
180		part = parts[i];
181		switch (parts[i]) {
182			case 'a':
183				part = date.getDayName();
184				break;
185			case 'A':
186				part = date.getDayName(true);
187				break;
188			case 'b':
189				part = date.getMonthName();
190				break;
191			case 'B':
192				part = date.getMonthName(true);
193				break;
194			case 'C':
195				part = 1 + Math.floor(y / 100);
196				break;
197			case 'd':
198				part = (d < 10) ? ("0" + d) : d;
199				break;
200			case 'e':
201				part = d;
202				break;
203			case 'H':
204				part = (hr < 10) ? ("0" + hr) : hr;
205				break;
206			case 'I':
207				part = (ir < 10) ? ("0" + ir) : ir;
208				break;
209			case 'j':
210				part = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy;
211				break;
212			case 'k':
213				part = hr;
214				break;
215			case 'l':
216				part = ir;
217				break;
218			case 'm':
219				part = (m < 9) ? ("0" + (1+m)) : (1+m);
220				break;
221			case 'M':
222				part = (min < 10) ? ("0" + min) : min;
223				break;
224			case 'p':
225			case 'P':
226				part = pm ? "PM" : "AM";
227				break;
228			case 's':
229				part = Math.floor(date.getTime() / 1000);
230				break;
231			case 'S':
232				part = (sec < 10) ? ("0" + sec) : sec;
233				break;
234			case 'u':
235				part = w + 1;
236				break;
237			case 'w':
238				part = wn;
239				break;
240			case 'W':
241				part = wm;
242				break;
243			case 'y':
244				part = ('' + y).substr(2, 2);
245				break;
246			case 'Y':
247				part = y;
248				break;
249		}
250		parts[i] = part;
251	}
252	return parts.join('');
253}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.