Changeset 5592 for trunk/prototype/modules/calendar/js/timezone.js
- Timestamp:
- 03/01/12 03:35:01 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/js/timezone.js
r5550 r5592 6 6 7 7 var objTime = DataLayer.dispatch( "timezones" ); 8 8 9 Timezone = { 9 10 daylightSaving: isNaN(objTime.isDaylightSaving) ? parseInt( objTime.isDaylightSaving ) : 0,10 currentOffset : new Date().getUTCOffset(), 11 daylightSaving: isNaN(parseInt( objTime.isDaylightSaving )) ? 0 : parseInt( objTime.isDaylightSaving ), 11 12 12 13 timezones: objTime.timezones, … … 16 17 17 18 }, 18 19 compareTZID: function( fromTZID, toTZID ){20 21 return( this.timezones[ fromTZID ] === this.timezones[ toTZID ] );22 23 },24 25 checkTimezoneCalendar: function(idCalendar, tzId){26 27 return idCalendar && this.compareTZID( DataLayer.get('calendar', idCalendar).timezone, tzId );28 29 },30 19 31 setDateTimezone: function (date, tzId, idCalendar){ 32 33 if( !!!tzId || this.checkTimezoneCalendar(idCalendar, tzId) ) 34 return date; 35 36 var timezone = this.timezone( tzId ); 37 38 var timezoneOffset = parseInt(timezone.substr(2)) - this.daylightSaving * 100; 39 40 var timeCurrent = parseInt((date.getTimezoneOffset()/60)+'00') * ( ( timezone.charAt(0) != date.getUTCOffset().charAt(0) )? 1 : -1 ); 41 42 var times = timezoneOffset + timeCurrent; 43 44 if(times == 0) 45 return date; 46 else if(times > 0) 47 return date.setTimezoneOffset('-0'+(times)); 48 else 49 return date.setTimezoneOffset('+0'+((times * -1))); 50 }, 51 52 getDateTimezone: function(date, tzId, recursive){ 53 20 getDateCalendar: function(date, tzId, isDay){ 54 21 var timezone = this.timezone( tzId ); 55 22 … … 57 24 return date; 58 25 59 var currentTimezone = parseInt((date.getTimezoneOffset()/60)+'00');26 date = this.normalizeDate(date, false, true); 60 27 61 var timezoneOffset = parseInt(timezone.substr(2)) - this.daylightSaving * 100; 62 63 var times = timezoneOffset - currentTimezone; 64 65 if(times == 0){ 66 if((timezone.charAt(0) == date.getUTCOffset().charAt(0)) && recursive) 67 return date.setTimezoneOffset( timezone.charAt(0)+'0'+(currentTimezone)); 68 69 return date; 70 }else if (times > 0) 71 return date.setTimezoneOffset('+0'+(times)); 72 else{ 73 return date.setTimezoneOffset('-0'+((times * -1) + (currentTimezone * 2))); 74 } 28 return date.add({hours: parseInt(timezone.charAt(0) + timezone.charAt(2)) + parseInt(isDay) }); 75 29 }, 76 30 77 getDateUTC: function (date, tzId){ 31 getDateEvent: function(date, tzId, idCalendar, isDay, type){ 32 var timezone = this.timezone( tzId ); 33 var timezoneCurrent = this.timezone(DataLayer.get('calendar', idCalendar).timezone); 78 34 79 var timezone = this.timezone( tzId ), currentTimezone = parseInt(timezone.substr(2)) - this.daylightSaving * 100; 80 return(date.setTimezoneOffset(timezone.charAt(0)+'0'+currentTimezone)); 35 if(timezone == timezoneCurrent) 36 return date; 37 38 var to = parseInt(timezone.charAt(0) + timezone.charAt(2)) + parseInt(isDay.event[type]); 39 var current = parseInt(timezoneCurrent.charAt(0) + timezoneCurrent.charAt(2)) + parseInt(isDay.calendar[type]); 40 41 if(timezone.charAt(0) == timezoneCurrent.charAt(0)) 42 hours = ( to + (current * - 1)) ; 43 else 44 hours = to + (( current ) * (timezone.charAt(0) == '+' ? -1 : 1)) ; 45 46 return date.add({hours: hours}); 81 47 }, 82 83 createDateTimezone: function(date, tzId, idCalendar){ 84 if(this.checkTimezoneCalendar(idCalendar, tzId)) 85 return this.getDateTimezone(date, tzId, true); 86 87 var times = 0, timezone = this.timezone( tzId ); 88 89 if(timezone.charAt(0) == '+') 90 times = parseInt(timezone.substr(2)) - parseInt((date.getTimezoneOffset()/60)+'00'); 91 else 92 times = (parseInt(timezone.substr(2)) + parseInt((date.getTimezoneOffset()/60)+'00')) * (-1); 93 if(times == 0) 94 return date.setTimezoneOffset('0000'); 95 else if (times > 0) 96 return date.setTimezoneOffset('+0'+times); 97 else 98 return date.setTimezoneOffset('-0'+(times * -1)); 48 49 normalizeDate: function(date, current, inverse){ 50 var offsetDate = !!current ? this.currentOffset : date.getUTCOffset(); 51 return date.add({hours: (parseInt(offsetDate.charAt(0) + offsetDate.charAt(2)) * (!!inverse ? -1 : 1) )}); 99 52 } 100 101 102 103 53 }
Note: See TracChangeset
for help on using the changeset viewer.