PageSourceSearch

https://omertek.com/en/assets/js/otek/dateFormat.js?ohs75f9ubibfr80elp5cl7ckbj

js omertek.com collected 2026-10-09 04:47:10 UTC 17,113 bytes, 490 lines download raw bytes

vendor: 17,113 bytes, lines 1-490
1var DateFormat = {};
2
3(function($) {
4  var daysInWeek          = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
5  var shortDaysInWeek     = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
6  var shortMonthsInYear   = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
7                              'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
8  var longMonthsInYear    = ['January', 'February', 'March', 'April', 'May', 'June',
9                              'July', 'August', 'September', 'October', 'November', 'December'];
10  var shortMonthsToNumber = { 'Jan': '01', 'Feb': '02', 'Mar': '03', 'Apr': '04', 'May': '05', 'Jun': '06',
11                              'Jul': '07', 'Aug': '08', 'Sep': '09', 'Oct': '10', 'Nov': '11', 'Dec': '12' };
12
13  var YYYYMMDD_MATCHER = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.?\d{0,3}[Z\-+]?(\d{2}:?\d{2})?/;
14
15  $.format = (function() {
16    function numberToLongDay(value) {
17      // 0 to Sunday
18      // 1 to Monday
19      return daysInWeek[parseInt(value, 10)] || value;
20    }
21
22    function numberToShortDay(value) {
23      // 0 to Sun
24      // 1 to Mon
25      return shortDaysInWeek[parseInt(value, 10)] || value;
26    }
27
28    function numberToShortMonth(value) {
29      // 1 to Jan
30      // 2 to Feb
31      var monthArrayIndex = parseInt(value, 10) - 1;
32      return shortMonthsInYear[monthArrayIndex] || value;
33    }
34
35    function numberToLongMonth(value) {
36      // 1 to January
37      // 2 to February
38      var monthArrayIndex = parseInt(value, 10) - 1;
39      return longMonthsInYear[monthArrayIndex] || value;
40    }
41
42    function shortMonthToNumber(value) {
43      // Jan to 01
44      // Feb to 02
45      return shortMonthsToNumber[value] || value;
46    }
47
48    function parseTime(value) {
49      // 10:54:50.546
50      // => hour: 10, minute: 54, second: 50, millis: 546
51      // 10:54:50
52      // => hour: 10, minute: 54, second: 50, millis: ''
53      var time = value,
54          hour,
55          minute,
56          second,
57          millis = '',
58          delimited,
59          timeArray;
60
61      if(time.indexOf('.') !== -1) {
62        delimited = time.split('.');
63        // split time and milliseconds
64        time   = delimited[0];
65        millis = delimited[delimited.length - 1];
66      }
67
68      timeArray = time.split(':');
69
70      if(timeArray.length >= 3) {
71        hour   = timeArray[0];
72        minute = timeArray[1];
73        // '20 GMT-0200 (BRST)'.replace(/\s.+/, '').replace(/[a-z]/gi, '');
74        // => 20
75        // '20Z'.replace(/\s.+/, '').replace(/[a-z]/gi, '');
76        // => 20
77        second = timeArray[2].replace(/\s.+/, '').replace(/[a-z]/gi, '');
78        // '01:10:20 GMT-0200 (BRST)'.replace(/\s.+/, '').replace(/[a-z]/gi, '');
79        // => 01:10:20
80        // '01:10:20Z'.replace(/\s.+/, '').replace(/[a-z]/gi, '');
81        // => 01:10:20
82        time = time.replace(/\s.+/, '').replace(/[a-z]/gi, '');
83        return {
84          time:    time,
85          hour:    hour,
86          minute:  minute,
87          second:  second,
88          millis:  millis
89        };
90      }
91
92      return { time : '', hour : '', minute : '', second : '', millis : '' };
93    }
94
95
96    function padding(value, length) {
97      var paddingCount = length - String(value).length;
98      for(var i = 0; i < paddingCount; i++) {
99        value = '0' + value;
100      }
101      return value;
102    }
103
104    return {
105
106      parseDate: function(value) {
107        var values,
108            subValues;
109
110        var parsedDate = {
111          date:       null,
112          year:       null,
113          month:      null,
114          dayOfMonth: null,
115          dayOfWeek:  null,
116          time:       null
117        };
118
119        if(typeof value == 'number') {
120          return this.parseDate(new Date(value));
121        } else if(typeof value.getFullYear == 'function') {
122          parsedDate.year       = String(value.getFullYear());
123          // d = new Date(1900, 1, 1) // 1 for Feb instead of Jan.
124          // => Thu Feb 01 1900 00:00:00
125          parsedDate.month      = String(value.getMonth() + 1);
126          parsedDate.dayOfMonth = String(value.getDate());
127          parsedDate.time       = parseTime(value.toTimeString() + '.' + value.getMilliseconds());
128        } else if(value.search(YYYYMMDD_MATCHER) != -1) {
129          /* 2009-04-19T16:11:05+02:00 || 2009-04-19T16:11:05Z */
130          values = value.split(/[T\+-]/);
131          parsedDate.year       = values[0];
132          parsedDate.month      = values[1];
133          parsedDate.dayOfMonth = values[2];
134          parsedDate.time       = parseTime(values[3].split('.')[0]);
135        } else {
136          values = value.split(' ');
137          if(values.length === 6 && isNaN(values[5])) {
138            // values[5] == year
139            /*
140             * This change is necessary to make `Mon Apr 28 2014 05:30:00 GMT-0300` work
141             * like `case 7`
142             * otherwise it will be considered like `Wed Jan 13 10:43:41 CET 2010
143             * Fixes: https://github.com/phstc/jquery-dateFormat/issues/64
144             */
145            values[values.length] = '()';
146          }
147          switch (values.length) {
148            case 6:
149              /* Wed Jan 13 10:43:41 CET 2010 */
150              parsedDate.year       = values[5];
151              parsedDate.month      = shortMonthToNumber(values[1]);
152              parsedDate.dayOfMonth = values[2];
153              parsedDate.time       = parseTime(values[3]);
154              break;
155            case 2:
156              /* 2009-12-18 10:54:50.546 */
157              subValues = values[0].split('-');
158              parsedDate.year       = subValues[0];
159              parsedDate.month      = subValues[1];
160              parsedDate.dayOfMonth = subValues[2];
161              parsedDate.time       = parseTime(values[1]);
162              break;
163            case 7:
164              /* Tue Mar 01 2011 12:01:42 GMT-0800 (PST) */
165            case 9:
166              /* added by Larry, for Fri Apr 08 2011 00:00:00 GMT+0800 (China Standard Time) */
167            case 10:
168              /* added by Larry, for Fri Apr 08 2011 00:00:00 GMT+0200 (W. Europe Daylight Time) */
169              parsedDate.year       = values[3];
170              /* edited by Andrey, for Mon 18 Apr 2016 -//-: '[Day] [Month]' format (russian) */
171              var parsedVal1 = parseInt(values[1]);
172              var parsedVal2 = parseInt(values[2]);
173              if (parsedVal1 && !parsedVal2) {
174                  parsedDate.month  = shortMonthToNumber(values[2]);
175                  parsedDate.dayOfMonth = values[1];
176              } else {
177                  parsedDate.month = shortMonthToNumber(values[1]);
178                  parsedDate.dayOfMonth = values[2];
179              }
180              parsedDate.time = parseTime(values[4]);
181              break;
182            case 1:
183              /* added by Jonny, for 2012-02-07CET00:00:00 (Doctrine Entity -> Json Serializer) */
184              subValues = values[0].split('');
185              parsedDate.year       = subValues[0] + subValues[1] + subValues[2] + subValues[3];
186              parsedDate.month      = subValues[5] + subValues[6];
187              parsedDate.dayOfMonth = subValues[8] + subValues[9];
188              parsedDate.time       = parseTime(subValues[13] + subValues[14] + subValues[15] + subValues[16] + subValues[17] + subValues[18] + subValues[19] + subValues[20]);
189              break;
190            default:
191              return null;
192          }
193        }
194
195        if(parsedDate.time) {
196          parsedDate.date = new Date(parsedDate.year, parsedDate.month - 1, parsedDate.dayOfMonth, parsedDate.time.hour, parsedDate.time.minute, parsedDate.time.second, parsedDate.time.millis);
197        } else {
198          parsedDate.date = new Date(parsedDate.year, parsedDate.month - 1, parsedDate.dayOfMonth);
199        }
200
201        parsedDate.dayOfWeek = String(parsedDate.date.getDay());
202
203        return parsedDate;
204      },
205
206      date : function(value, format) {
207        try {
208          var parsedDate = this.parseDate(value);
209
210          if(parsedDate === null) {
211            return value;
212          }
213
214          var year       = parsedDate.year,
215              month      = parsedDate.month,
216              dayOfMonth = parsedDate.dayOfMonth,
217              dayOfWeek  = parsedDate.dayOfWeek,
218              time       = parsedDate.time;
219          var hour;
220
221          var pattern      = '',
222              retValue     = '',
223              unparsedRest = '',
224              inQuote      = false;
225
226          /* Issue 1 - variable scope issue in format.date (Thanks jakemonO) */
227          for(var i = 0; i < format.length; i++) {
228            var currentPattern = format.charAt(i);
229            // Look-Ahead Right (LALR)
230            var nextRight      = format.charAt(i + 1);
231
232            if (inQuote) {
233              if (currentPattern == "'") {
234                retValue += (pattern === '') ? "'" : pattern;
235                pattern = '';
236                inQuote = false;
237              } else {
238                pattern += currentPattern;
239              }
240              continue;
241            }
242            pattern += currentPattern;
243            unparsedRest = '';
244            switch (pattern) {
245              case 'ddd':
246                retValue += numberToLongDay(dayOfWeek);
247                pattern = '';
248                break;
249              case 'dd':
250                if(nextRight === 'd') {
251                  break;
252                }
253                retValue += padding(dayOfMonth, 2);
254                pattern = '';
255                break;
256              case 'd':
257                if(nextRight === 'd') {
258                  break;
259                }
260                retValue += parseInt(dayOfMonth, 10);
261                pattern = '';
262                break;
263              case 'D':
264                if(dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {
265                  dayOfMonth = parseInt(dayOfMonth, 10) + 'st';
266                } else if(dayOfMonth == 2 || dayOfMonth == 22) {
267                  dayOfMonth = parseInt(dayOfMonth, 10) + 'nd';
268                } else if(dayOfMonth == 3 || dayOfMonth == 23) {
269                  dayOfMonth = parseInt(dayOfMonth, 10) + 'rd';
270                } else {
271                  dayOfMonth = parseInt(dayOfMonth, 10) + 'th';
272                }
273                retValue += dayOfMonth;
274                pattern = '';
275                break;
276              case 'MMMM':
277                retValue += numberToLongMonth(month);
278                pattern = '';
279                break;
280              case 'MMM':
281                if(nextRight === 'M') {
282                  break;
283                }
284                retValue += numberToShortMonth(month);
285                pattern = '';
286                break;
287              case 'MM':
288                if(nextRight === 'M') {
289                  break;
290                }
291                retValue += padding(month, 2);
292                pattern = '';
293                break;
294              case 'M':
295                if(nextRight === 'M') {
296                  break;
297                }
298                retValue += parseInt(month, 10);
299                pattern = '';
300                break;
301              case 'y':
302              case 'yyy':
303                if(nextRight === 'y') {
304                  break;
305                }
306                retValue += pattern;
307                pattern = '';
308                break;
309              case 'yy':
310                if(nextRight === 'y') {
311                  break;
312                }
313                retValue += String(year).slice(-2);
314                pattern = '';
315                break;
316              case 'yyyy':
317                retValue += year;
318                pattern = '';
319                break;
320              case 'HH':
321                retValue += padding(time.hour, 2);
322                pattern = '';
323                break;
324              case 'H':
325                if(nextRight === 'H') {
326                  break;
327                }
328                retValue += parseInt(time.hour, 10);
329                pattern = '';
330                break;
331              case 'hh':
332                /* time.hour is '00' as string == is used instead of === */
333                hour = (parseInt(time.hour, 10) === 0 ? 12 : time.hour < 13 ? time.hour
334                    : time.hour - 12);
335                retValue += padding(hour, 2);
336                pattern = '';
337                break;
338              case 'h':
339                if(nextRight === 'h') {
340                  break;
341                }
342                hour = (parseInt(time.hour, 10) === 0 ? 12 : time.hour < 13 ? time.hour
343                    : time.hour - 12);
344                retValue += parseInt(hour, 10);
345                // Fixing issue https://github.com/phstc/jquery-dateFormat/issues/21
346                // retValue = parseInt(retValue, 10);
347                pattern = '';
348                break;
349              case 'mm':
350                retValue += padding(time.minute, 2);
351                pattern = '';
352                break;
353              case 'm':
354                if(nextRight === 'm') {
355                  break;
356                }
357                retValue += parseInt(time.minute,10);
358                pattern = '';
359                break;
360              case 'ss':
361                /* ensure only seconds are added to the return string */
362                retValue += padding(time.second.substring(0, 2), 2);
363                pattern = '';
364                break;
365              case 's':
366                if(nextRight === 's') {
367                  break;
368                }
369                retValue += parseInt(time.second,10);
370                pattern = '';
371                break;
372              case 'S':
373              case 'SS':
374                if(nextRight === 'S') {
375                  break;
376                }
377                retValue += pattern;
378                pattern = '';
379                break;
380              case 'SSS':
381                retValue +=  padding(time.millis.substring(0, 3), 3);
382                pattern = '';
383                break;
384              case 'a':
385                retValue += time.hour >= 12 ? 'PM' : 'AM';
386                pattern = '';
387                break;
388              case 'p':
389                retValue += time.hour >= 12 ? 'p.m.' : 'a.m.';
390                pattern = '';
391                break;
392              case 'E':
393                retValue += numberToShortDay(dayOfWeek);
394                pattern = '';
395                break;
396              case "'":
397                pattern = '';
398                inQuote = true;
399                break;
400              default:
401                retValue += currentPattern;
402                pattern = '';
403                break;
404            }
405          }
406          retValue += unparsedRest;
407          return retValue;
408        } catch (e) {
409          if(console && console.log) {
410            console.log(e);
411          }
412          return value;
413        }
414      },
415      /*
416       * JavaScript Pretty Date
417       * Copyright (c) 2011 John Resig (ejohn.org)
418       * Licensed under the MIT and GPL licenses.
419       *
420       * Takes an ISO time and returns a string representing how long ago the date
421       * represents
422       *
423       * ('2008-01-28T20:24:17Z') // => '2 hours ago'
424       * ('2008-01-27T22:24:17Z') // => 'Yesterday'
425       * ('2008-01-26T22:24:17Z') // => '2 days ago'
426       * ('2008-01-14T22:24:17Z') // => '2 weeks ago'
427       * ('2007-12-15T22:24:17Z') // => 'more than 5 weeks ago'
428       *
429       */
430      prettyDate : function(time) {
431        var date;
432        var diff;
433        var abs_diff;
434        var day_diff;
435        var abs_day_diff;
436        var tense;
437
438        if(typeof time === 'string' || typeof time === 'number') {
439          date = new Date(time);
440        }
441
442        if(typeof time === 'object') {
443          date = new Date(time.toString());
444        }
445
446        diff = (((new Date()).getTime() - date.getTime()) / 1000);
447
448        abs_diff = Math.abs(diff);
449        abs_day_diff = Math.floor(abs_diff / 86400);
450
451        if(isNaN(abs_day_diff)) {
452          return;
453        }
454
455        tense = diff < 0 ? 'from now' : 'ago';
456
457        if(abs_diff < 60) {
458          if(diff >= 0)
459            return 'just now';
460          else
461            return 'in a moment';
462        } else if(abs_diff < 120) {
463          return '1 minute ' + tense;
464        } else if(abs_diff < 3600) {
465          return Math.floor(abs_diff / 60) + ' minutes ' + tense;
466        } else if(abs_diff < 7200) {
467          return '1 hour ' + tense;
468        } else if(abs_diff < 86400) {
469          return Math.floor(abs_diff / 3600) + ' hours ' + tense;
470        } else if(abs_day_diff === 1) {
471          if(diff >= 0)
472            return 'Yesterday';
473          else
474            return 'Tomorrow';
475        } else if(abs_day_diff < 7) {
476          return abs_day_diff + ' days ' + tense;
477        } else if(abs_day_diff === 7) {
478          return '1 week ' + tense;
479        } else if(abs_day_diff < 31) {
480          return Math.ceil(abs_day_diff / 7) + ' weeks ' + tense;
481        } else {
482          return 'more than 5 weeks ' + tense;
483        }
484      },
485      toBrowserTimeZone : function(value, format) {
486        return this.date(new Date(value), format || 'MM/dd/yyyy HH:mm:ss');
487      }
488    };
489  }());
490}(DateFormat));

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.