source: trunk/prototype/modules/calendar/js/timezone.js @ 7579

Revision 7579, 2.5 KB checked in by acoutinho, 11 years ago (diff)

Ticket #3233 - Problemas na configuracao da hora de um evento.

  • Property svn:executable set to *
Line 
1/*
2        Todo Otimizar caulculo de timezone
3        Objeto Date.toString() retorna a data com inserção do offset
4        Objeto Date.getTime() retorna a data sem inserção do offset
5*/
6
7var objTime = DataLayer.dispatch( "timezones", {teste:'123'} );
8
9Timezone = {
10        currentOffset : new Date().getUTCOffset(),
11        daylightSaving: isNaN(parseInt( objTime.isDaylightSaving )) ? 0 : parseInt( objTime.isDaylightSaving ),
12
13    start:false,
14    end:false,
15
16        timezones: objTime.timezones,     
17
18    timezone: function( tzId ){
19
20                return this.timezones[ tzId || User.preferences.timezone ];
21
22        },
23       
24        getDateCalendar: function( date, tzId, isDayLigth ){
25
26        return date;
27
28        },
29       
30        getDateEvent: function(date, tzId, isDayLigth){
31        if(!tzId)
32            return date;
33
34        var timezone = this.timezone( tzId );
35
36        if(!timezone)
37            return date;
38
39        date = this.normalizeDate(date, false, true);
40
41        return date.add({hours: (parseInt(timezone.charAt(0) + timezone.charAt(2)) + Timezone.diff( isDayLigth )) });
42        },
43
44    diff: function(isDayLigth){
45
46        if( !parseInt( isDayLigth ) ){
47            return 0;
48        }else{
49
50            return (parseInt( isDayLigth ) == 1 ? 1 : -1);
51        }
52
53    },
54
55        normalizeDate: function(date, current, inverse){
56
57                var offsetDate = !!current ? this.currentOffset : date.getUTCOffset();
58                return date.add({hours: (parseInt(offsetDate.charAt(0) + offsetDate.charAt(2)) * (!!inverse ? -1 : 1) )});
59
60        },
61       
62        getDateMapDisponibility: function(date){
63
64                return this.normalizeDate(date, false, true);
65
66        },
67
68    getHour: function(time){
69
70        return dateCalendar.formatDate( Timezone.normalizeDate( new Date( parseInt( time ) ), false, true) , User.preferences.hourFormat);
71
72    },
73
74    formateHour: function(time){
75
76        return dateCalendar.formatDate(  new Date( parseInt( time ) ) , User.preferences.hourFormat);
77
78    },
79
80    getDate: function( time, rang, isAllDay){
81
82        return (new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0) )).toString( User.preferences.dateFormat );
83
84    },
85
86    getDateObj: function( time, rang, isAllDay){
87
88        return Timezone.normalizeDate(new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0) ), false, true);
89
90    },
91
92    getDateObjCalendar: function( time, rang, isAllDay){
93
94        return  Timezone.normalizeDate(new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0)), false, true);
95
96    }
97
98
99}
Note: See TracBrowser for help on using the repository browser.