PageSourceSearch

https://okazaki-kanko.jp/vendor/lib/js/dateformat.js?20250925.1700

js okazaki-kanko.jp collected 2026-10-02 04:15:17 UTC 9,644 bytes, 309 lines download raw bytes

1/*
2--------------------------------------------------------
3dateformat.js - Simple date formatter
4Version 1.1 (Update 2008/04/02)
5
6Copyright (c) 2007-2008 onozaty (http://www.enjoyxstudy.com)
7
8Released under an MIT-style license.
9
10For details, see the web site:
11 http://www.enjoyxstudy.com/javascript/dateformat/
12
13--------------------------------------------------------
14patterns
15y : Year         ex. "yyyy" -> "2007", "yy" -> "07"
16M : Month        ex. "MM" -> "05" "12", "M" -> "5" "12"
17d : Day          ex. "dd" -> "09" "30", "d" -> "9" "30"
18H : Hour (0-23)  ex. "HH" -> "00" "23", "H" -> "0" "23"
19m : Minute       ex. "mm" -> "01" "59", "m" -> "1" "59"
20s : Second       ex. "ss" -> "00" "59", "H" -> "0" "59"
21S : Millisecond  ex. "SSS" -> "000" "012" "999", 
22                     "SS" -> "00" "12" "999", "S" -> "0" "12" "999"
23
24Text can be quoted using single quotes (') to avoid interpretation.
25"''" represents a single quote. 
26
27
28Useing..
29
30 var fmt = new DateFormat("yyyy/MM/dd HH:mm:ss SSS");
31
32 var str = fmt.format(new Date()); // "2007/05/10 12:21:19 002"
33 var date = fmt.parse("2007/05/10 12:21:19 002"); // return Date object
34
35--------------------------------------------------------
36*/
37
38var DateFormat = function(pattern) {
39  this._init(pattern);
40};
41
42DateFormat.prototype = {
43  _init: function(pattern) {
44
45    this.pattern = pattern;
46    this._patterns = [];
47
48    for (var i = 0; i < pattern.length; i++) {
49      var ch = pattern.charAt(i);
50      if (this._patterns.length == 0) {
51        this._patterns[0] = ch;
52      } else {
53        var index = this._patterns.length - 1;
54        if (this._patterns[index].charAt(0) == "'") {
55          if (this._patterns[index].length == 1 
56             || this._patterns[index].charAt(this._patterns[index].length - 1) != "'") {
57            this._patterns[index] += ch;
58          } else {
59            this._patterns[index + 1] = ch;
60          }
61        } else if (this._patterns[index].charAt(0) == ch) {
62          this._patterns[index] += ch;
63        } else {
64          this._patterns[index + 1] = ch;
65        }
66      }
67    }
68  },
69
70  format: function(date) {
71
72    var result = [];
73    for (var i = 0; i < this._patterns.length; i++) {
74      result[i] = this._formatWord(date, this._patterns[i]);
75    }
76    return result.join('');
77  },
78  _formatWord: function(date, pattern) {
79
80    var formatter = this._formatter[pattern.charAt(0)];
81    if (formatter) {
82      return formatter.apply(this, [date, pattern]);
83    } else {
84      return pattern;
85    }
86  },
87  _formatter: {
88    "y": function(date, pattern) {
89      // Year
90      var year = String(date.getFullYear());
91      if (pattern.length <= 2) {
92        year = year.substring(2, 4);
93      } else {
94        year = this._zeroPadding(year, pattern.length);
95      }
96      return year;
97    },
98    "M": function(date, pattern) {
99      // Month in year
100      return this._zeroPadding(String(date.getMonth() + 1), pattern.length);
101    },
102    "d": function(date, pattern) {
103      // Day in month
104      return this._zeroPadding(String(date.getDate()), pattern.length);
105    },
106    "H": function(date, pattern) {
107      // Hour in day (0-23)
108      return this._zeroPadding(String(date.getHours()), pattern.length);
109    },
110    "m": function(date, pattern) {
111      // Minute in hour
112      return this._zeroPadding(String(date.getMinutes()), pattern.length);
113    },
114    "s": function(date, pattern) {
115      // Second in minute
116      return this._zeroPadding(String(date.getSeconds()), pattern.length);
117    },
118    "S": function(date, pattern) {
119      // Millisecond
120      return this._zeroPadding(String(date.getMilliseconds()), pattern.length);
121    },
122    "'": function(date, pattern) {
123      // escape
124      if (pattern == "''") {
125        return "'";
126      } else {
127        return pattern.replace(/'/g, '');
128      }
129    }
130  },
131
132  _zeroPadding: function(str, length) {
133    if (str.length >= length) {
134      return str;
135    }
136
137    return new Array(length - str.length + 1).join("0") + str;
138  },
139
140
141  /// Parser ///
142  parse: function(text) {
143
144    if (typeof text != 'string' || text == '') return null;
145
146    var result = {year: 1970, month: 1, day: 1, hour: 0, min: 0, sec: 0, msec: 0};
147
148    for (var i = 0; i < this._patterns.length; i++) {
149       if (text == '') return null; // parse error!!
150       text = this._parseWord(text, this._patterns[i], result);
151       if (text === null) return null; // parse error!!
152    }
153    if (text != '') return null; // parse error!!
154
155    return new Date(
156                result.year,
157                result.month - 1,
158                result.day,
159                result.hour,
160                result.min,
161                result.sec,
162                result.msec);
163  },
164  _parseWord: function(text, pattern, result) {
165
166    var parser = this._parser[pattern.charAt(0)];
167    if (parser) {
168      return parser.apply(this, [text, pattern, result]);
169    } else {
170      if (text.indexOf(pattern) != 0) {
171        return null;
172      } else {
173        return text.substring(pattern.length);
174      }
175    }
176  },
177  _parser: {
178    "y": function(text, pattern, result) {
179      // Year
180      var year;
181      if (pattern.length <= 2) {
182        year = text.substring(0, 2);
183        year = year < 70 ? '20' + year : '19' + year;
184        text = text.substring(2);
185      } else {
186        var length = (pattern.length == 3) ? 4 : pattern.length;
187        year = text.substring(0, length);
188        text = text.substring(length);
189      }
190      if (!this._isNumber(year)) return null; // error
191      result.year = parseInt(year, 10);
192      return text;
193    },
194    "M": function(text, pattern, result) {
195      // Month in year
196      var month;
197      if (pattern.length == 1 && text.length > 1
198          && text.substring(0, 2).match(/1[0-2]/) != null) {
199        month = text.substring(0, 2);
200        text  = text.substring(2);
201      } else {
202        month = text.substring(0, pattern.length);
203        text  = text.substring(pattern.length);
204      }
205      if (!this._isNumber(month)) return null; // error
206      result.month = parseInt(month, 10);
207      return text;
208    },
209    "d": function(text, pattern, result) {
210      // Day in month
211      var day;
212      if (pattern.length == 1 && text.length > 1 
213          && text.substring(0, 2).match(/1[0-9]|2[0-9]|3[0-1]/) != null) {
214        day  = text.substring(0, 2);
215        text = text.substring(2);
216      } else {
217        day  = text.substring(0, pattern.length);
218        text = text.substring(pattern.length);
219      }
220      if (!this._isNumber(day)) return null; // error
221      result.day = parseInt(day, 10);
222      return text;
223    },
224    "H": function(text, pattern, result) {
225      // Hour in day (0-23)
226      var hour;
227      if (pattern.length == 1 && text.length > 1
228          && text.substring(0, 2).match(/1[0-9]|2[0-3]/) != null) {
229        hour = text.substring(0, 2);
230        text = text.substring(2);
231      } else {
232        hour = text.substring(0, pattern.length);
233        text = text.substring(pattern.length);
234      }
235      if (!this._isNumber(hour)) return null; // error
236      result.hour = parseInt(hour, 10);
237      return text;
238    },
239    "m": function(text, pattern, result) {
240      // Minute in hour
241      var min;
242      if (pattern.length == 1 && text.length > 1
243          && text.substring(0, 2).match(/[1-5][0-9]/) != null) {
244        min  = text.substring(0, 2);
245        text = text.substring(2);
246      } else {
247        min  = text.substring(0, pattern.length);
248        text = text.substring(pattern.length);
249      }
250      if (!this._isNumber(min)) return null; // error
251      result.min = parseInt(min, 10);
252      return text;
253    },
254    "s": function(text, pattern, result) {
255      // Second in minute
256      var sec;
257      if (pattern.length == 1 && text.length > 1
258          && text.substring(0, 2).match(/[1-5][0-9]/) != null) {
259        sec  = text.substring(0, 2);
260        text = text.substring(2);
261      } else {
262        sec  = text.substring(0, pattern.length);
263        text = text.substring(pattern.length);
264      }
265      if (!this._isNumber(sec)) return null; // error
266      result.sec = parseInt(sec, 10);
267      return text;
268    },
269    "S": function(text, pattern, result) {
270      // Millimsecond
271      var msec;
272      if (pattern.length == 1 || pattern.length == 2) {
273        if (text.length > 2 && text.substring(0, 3).match(/[1-9][0-9][0-9]/) != null) {
274          msec = text.substring(0, 3);
275          text = text.substring(3);
276        } else if (text.length > 1 && text.substring(0, 2).match(/[1-9][0-9]/) != null) {
277          msec = text.substring(0, 2);
278          text = text.substring(2);
279        } else {
280          msec = text.substring(0, pattern.length);
281          text = text.substring(pattern.length);
282        }
283      } else {
284        msec = text.substring(0, pattern.length);
285        text = text.substring(pattern.length);
286      }
287      if (!this._isNumber(msec)) return null; // error
288      result.msec = parseInt(msec, 10);
289      return text;
290    },
291    "'": function(text, pattern, result) {
292      // escape
293      if (pattern == "''") {
294        pattern = "'";
295      } else {
296        pattern = pattern.replace(/'/g, '');
297      }
298      if (text.indexOf(pattern) != 0) {
299        return null; // error
300      } else {
301        return text.substring(pattern.length);
302      }
303    }
304  },
305
306  _isNumber: function(str) {
307    return /^[0-9]*$/.test(str);
308  }
309}

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.