source: branches/2.4/prototype/modules/calendar/js/timezone.js @ 7594

Revision 7594, 2.4 KB checked in by douglas, 11 years ago (diff)

Ticket #3143 - problema ao copiar evento ou tarefa no modulo expressocalendar

  • 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" );
8
9Timezone = {
10        currentOffset : new Date().getUTCOffset(),
11        daylightSaving: isNaN(parseInt( objTime.isDaylightSaving )) ? 0 : parseInt( objTime.isDaylightSaving ),
12
13    timezones: objTime.timezones,
14        timezone: function( tzId ){
15
16                return this.timezones[ tzId || User.preferences.timezone ];
17
18        },
19       
20        getDateCalendar: function(date, tzId, isDayLigth ){
21                return date;
22        },
23       
24        getDateEvent: function(date, tzId, isDayLigth){
25        if(!tzId)
26            return date;
27
28        var timezone = this.timezone( tzId );
29
30        if(!timezone)
31            return date;
32
33        date = this.normalizeDate(date, false, true);
34
35        return date.add({hours: (parseInt(timezone.charAt(0) + timezone.charAt(2)) + Timezone.diff( isDayLigth )) });
36
37    },
38
39    diff: function(isDayLigth){
40
41        if( !parseInt( isDayLigth ) ){
42
43            return 0;
44
45        }else{
46
47            return (parseInt( isDayLigth ) == 1 ? 1 : -1);
48        }
49
50    },
51
52    normalizeDate: function(date, current, inverse){
53                var offsetDate = !!current ? this.currentOffset : date.getUTCOffset();
54                return date.add({hours: (parseInt(offsetDate.charAt(0) + offsetDate.charAt(2)) * (!!inverse ? -1 : 1) )});
55        },
56       
57        getDateMapDisponibility: function(date){
58                return this.normalizeDate(date, false, true);
59        },
60
61    getHour: function(time){
62
63        return dateCalendar.formatDate( Timezone.normalizeDate( new Date( parseInt( time ) ), false, true) , User.preferences.hourFormat);
64
65    },
66
67    formateHour: function(time){
68
69        return dateCalendar.formatDate(  new Date( parseInt( time ) ) , User.preferences.hourFormat);
70
71    },
72
73    getDate: function( time, rang, isAllDay){
74
75        return (new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0) )).toString( User.preferences.dateFormat );
76
77    },
78
79    getDateObj: function( time, rang, isAllDay){
80
81        return Timezone.normalizeDate(new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0) ), false, true);
82
83    },
84
85    getDateObjCalendar: function( time, rang, isAllDay){
86
87        return  Timezone.normalizeDate(new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0)), false, true);
88
89    }
90}
Note: See TracBrowser for help on using the repository browser.