]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/datetime.js
oops
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / datetime.js
1 var timer = {};
2
3 function timer_init(id) {
4         timer[id] = (new Date).getTime();
5 }
6
7 function timer_elapsed(id) {
8         if (! timer[id]) { timer_init(id); }
9         var ms = (new Date).getTime() - timer[id];
10         return( ms + 'ms (' + ms/1000 + 's)' );
11 }
12
13 function db_date2Date(date) {
14         var y  = date.substr(0,4);
15         var mo = date.substr(5,2);
16         var d  = date.substr(8,2);
17         var h  = date.substr(11,2);
18         var mi = date.substr(14,2);
19         var s  = date.substr(17,2);
20         return new Date(y,mo,d,h,mi,s);
21 }
22
23 function formatted_date(date,format) {
24         // pass in a Date object or epoch seconds or a postgres style date string (2005-07-19 10:38:25.211964-04)
25         if (typeof(date) == 'string') {
26                 if (date.match(/:/) || date.match(/-/)) {
27                         date = db_date2Date(date);
28                 } else {
29                         date = new Date( parseInt( date + '000' ) );
30                 }
31         }
32         var mm = date.getMonth() + 1; mm = mm.toString(); if (mm.length == 1) mm = '0' +mm;
33         var dd = date.getDate().toString(); if (dd.length == 1) dd = '0' +dd;
34         var yyyy = date.getFullYear().toString();
35         var yy = yyyy.substr(2);
36         var H = date.getHours(); H = H.toString(); if (H.length == 1) H = '0' + H;
37         var I = date.getHours(); if (I > 12) I -= 12; I = I.toString();
38         var M = date.getMinutes(); M = M.toString(); if (M.length == 1) M = '0' + M;
39         var s = format;
40         s = s.replace( /%m/g, mm );
41         s = s.replace( /%d/g, dd );
42         s = s.replace( /%Y/g, yyyy );
43         s = s.replace( /%D/g, mm + '/' + dd + '/' + yy );
44         s = s.replace( /%F/g, yyyy + '-' + mm + '-' + dd );
45         s = s.replace( /%H/g, H );
46         s = s.replace( /%I/g, I );
47         s = s.replace( /%M/g, M );
48         return s;
49 }
50
51 function interval_to_seconds ( $interval ) {
52
53         $interval = $interval.replace( /and/, ',' );
54         $interval = $interval.replace( /,/, ' ' );
55
56         var $amount = 0;
57         var results = $interval.match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/g);  
58         for (var i in results) {
59                 var result = results[i].match( /\s*\+?\s*(\d+)\s*(\w{1})\w*\s*/ );
60                 if (result[2] == 's') $amount += result[1] ;
61                 if (result[2] == 'm') $amount += 60 * result[1] ;
62                 if (result[2] == 'h') $amount += 60 * 60 * result[1] ;
63                 if (result[2] == 'd') $amount += 60 * 60 * 24 * result[1] ;
64                 if (result[2] == 'w') $amount += 60 * 60 * 24 * 7 * result[1] ;
65                 if (result[2] == 'M') $amount += ((60 * 60 * 24 * 365)/12) * result[1] ;
66                 if (result[2] == 'y') $amount += 60 * 60 * 24 * 365 * result[1] ;
67         }
68         return $amount;
69 }
70
71