Re: Kronolith - Birthdays off by one day
Michael J Rubinsky <[email protected]>
| Newsgroups | gmane.comp.horde.kronolith |
|---|---|
| Message-ID | <20141006111052.Horde.eIY9pc_dZyv_yWwanOIT5w1@h4.theupstairsroom.com> |
Quoting Michael J Rubinsky <[email protected]>: > Quoting Volker Then <[email protected]>: > >> Zitat von Michael J Rubinsky <[email protected]>: >> >>> Quoting John H. Bennett III <[email protected]>: >>> >>>> Quoting Michael J Rubinsky <[email protected]>: >>>> >>>>> Quoting Volker Then <[email protected]>: >>>>> >>>>>> Zitat von "John H. Bennett III" <[email protected]>: >>>>>> >>>>>>> Quoting Michael J Rubinsky <[email protected]>: >>>>>>> >>>>>>>> Quoting Volker Then <[email protected]>: >>>>>>>> >>>>>>>>> Zitat von "John H. Bennett III" <[email protected]>: >>>>>>>>> >>>>>>>>>> Quoting Michael J Rubinsky <[email protected]>: >>>>>>>>>> >>>>>>>>>>> Quoting John H. Bennett III <[email protected]>: >>>>>>>>>>> >>>>>>>>>>>> Quoting Michael J Rubinsky <[email protected]>: >>>>>>>>>>>> >>>>>>>>>>>>> Quoting Volker Then <[email protected]>: >>>>>>>>>>>>> >>>>>>>>>>>>>> Zitat von Michael J Rubinsky <[email protected]>: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Quoting Michael J Rubinsky <[email protected]>: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Quoting John H. Bennett III <[email protected]>: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Quoting Michael J Rubinsky <[email protected]>: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Quoting John H. Bennett III <[email protected]>: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Quoting Simon Wilson <[email protected]>: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I've stumbled across a problem that I don't know >>>>>>>>>>>>>>>>>>>>> what's going on. >>>>>>>>>>>>>>>>>>>>> I've added birthdays to some of my contacts, I >>>>>>>>>>>>>>>>>>>>> put them in with the >>>>>>>>>>>>>>>>>>>>> correct date, but some time in the future, I >>>>>>>>>>>>>>>>>>>>> look at them on the >>>>>>>>>>>>>>>>>>>>> Calendar, and some show a day off (ahead one >>>>>>>>>>>>>>>>>>>>> day). I edit them in >>>>>>>>>>>>>>>>>>>>> turba again, and again some time in the future >>>>>>>>>>>>>>>>>>>>> some are off a day. >>>>>>>>>>>>>>>>>>>>> This has happened 4 times in the last 2 weeks. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I don't know what's triggering this. Anyone else >>>>>>>>>>>>>>>>>>>>> seeing this? What >>>>>>>>>>>>>>>>>>>>> can I look for to help try to explain this. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> John >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> There has been discussion on this in the past on >>>>>>>>>>>>>>>>>>>> the list... mostly around birthdays syncing >>>>>>>>>>>>>>>>>>>> incorrectly through ActiveSync and back. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> If this is due to ActiveSync, it should only affect >>>>>>>>>>>>>>>>>> the contacts that have been edited on the client. >>>>>>>>>>>>>>>>>> Is that what you are seeing? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> mike >>>>>>>>>>>>>>>>>> The Horde Project >>>>>>>>>>>>>>>>>> http://www.horde.org >>>>>>>>>>>>>>>>>> https://www.facebook.com/hordeproject >>>>>>>>>>>>>>>>>> https://www.twitter.com/hordeproject >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Mike, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Yes, that is what I am seeing. I made a change to >>>>>>>>>>>>>>>>> my contact info on my Note 3, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Can you tell me what Android version you are using on >>>>>>>>>>>>>>> the Note? Did you take the KK update? >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Here it is only with contacts that are edited on the >>>>>>>>>>>>>> client - and that happens (almost) every time the >>>>>>>>>>>>>> contact has been edited. Some of the birthdays shifted >>>>>>>>>>>>>> minus four days after a few edits. Nexus 5, Kitkat >>>>>>>>>>>>>> 4.4.4, Nine. >>>>>>>>>>>>> >>>>>>>>>>>>> Can you test if this commit: >>>>>>>>>>>>> >>>>>>>>>>>>> https://github.com/horde/horde/compare/46ff2bea431aa99d82afc33d19cfb5cd23be90a4...b8a48c13b550d70754a9b3585912762683ff1ddc >>>>>>>>>>>>> >>>>>>>>>>>>> fixes it for you? >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>> >>>>>>>>>>>> Hi Mike, >>>>>>>>>>>> >>>>>>>>>>>> That didn't fix it. The date still shows up one day earlier. >>>>>>>>>>>> >>>>>>>>>>>> I created 2 contacts with different birthdays. Edited >>>>>>>>>>>> one from my device, and one from turba, then did a sync. >>>>>>>>>>>> Contact edited on device, shows birthday one day early. >>>>>>>>>>>> Contact from turba, fine. Then did the opposite, and >>>>>>>>>>>> original contact edited from turba now shows birthday one >>>>>>>>>>>> day early. >>>>>>>>>>>> >>>>>>>>>>>> Please let me know if you want to to try anything else. >>>>>>>>>>> >>>>>>>>>>> What timezone are you in? I want to set up my environment >>>>>>>>>>> the same as yours so I can trace this. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> mike >>>>>>>>>>> The Horde Project >>>>>>>>>>> http://www.horde.org >>>>>>>>>>> https://www.facebook.com/hordeproject >>>>>>>>>>> https://www.twitter.com/hordeproject >>>>>>>>>> >>>>>>>>>> I am in the Central Time Zone. >>>>>>>>>> >>>>>>>>>> from php.ini - date.timezone = "America/Chicago", horde >>>>>>>>>> prefs set to America/Chicago also. >>>>>>>>>> >>>>>>>>>> John >>>>>>>>>> >>>>>>>>> >>>>>>>>> The commit didn't work for me either. I am in CEST. Horde >>>>>>>>> prefs set to Europe/Berlin. >>>>>>>> >>>>>>>> Ok. How about the lastest Git? >>>>>>>> >>>>>>>> >>>>>>> Still didn't work for me with my note3. >>>>>>> >>>>>>> I used the raw file from this link, >>>>>>> https://github.com/horde/horde/blob/master/framework/ActiveSync/lib/Horde/ActiveSync/Device.php >>>>>>> >>>>>>> John >>>>>> >>>>>> Same here. >>>>> >>>>> I reread the Android source code for the contacts sync provider >>>>> and revamped some code in Horde. The current code (already >>>>> released in PEAR) works for me on my various test devices, and >>>>> all the tests pass. If it doesn't work for you at this point, >>>>> I'm really not sure what else to tell you other than you will >>>>> need to trace the code to see where the date is being shifted. >>>>> >>>> >>>> Still doesn't work for me. I turned on per device logging and >>>> have a log I can send to you personally, if that is OK? >>> >>> Sure, you can send it to me though I can't promise any miracles >>> since I can't reproduce. >>> >> >> Hi Mike, >> after all this seems not be an Android issue. I checked it now with >> my iOS test device (iPhone 4 iOS 7.1.2). After editing a contact on >> the client side (where the correct birthday was shown) the birthday >> shifts minus one day on the server side. >> I can't figure out what might be the time zone problem, if there is >> any, since all devices use time zone Europe/Berlin (iOS, Android, >> Horde prefs, server time: Mon Oct 6 15:40:40 CEST 2014). >> >> A birthday syncs to the phone like this: >> >> 2014-10-06T13:55:37+00:00 DEBUG: [26223] O <POOMCONTACTS:Birthday> >> 2014-10-06T13:55:37+00:00 DEBUG: [26223] O 1966-07-23T00:00:00.000Z >> 2014-10-06T13:55:37+00:00 DEBUG: [26223] O </POOMCONTACTS:Birthday> >> >> And after editing on the phone it goes back to the server like this: >> 2014-10-06T13:57:23+00:00 DEBUG: [26223] I <POOMCONTACTS:Birthday> >> 2014-10-06T13:57:23+00:00 DEBUG: [26223] I 1966-07-22T23:00:00.000Z >> 2014-10-06T13:57:23+00:00 DEBUG: [26223] I </POOMCONTACTS:Birthday> >> >> I wonder if this shifting has some something to do with daylight savings... > > You are correct in that the offset sent from the device is due to > DST, however this is exactly what is expected for an iOS device > running iOS 5 or greater. In code, the datetime is converted back to > to the user's date_default_timezone - which moves it back to the > correct day. I've added another test to the test suite for this, and > it passes for me. The only way I see this not working is if one of > the timezones in use is actually NOT Europe/Berlin. Otherwise, you > will need to trace the code to see where the conversion is failing > for you. > > Essentially, in your case > Horde_ActiveSync_Device::normalizePoomContactsDates() should return > a Horde_Date object that contains the UTC version of the datetime > (1966-07-23 23:00:00). So, this means that in > Turba_Driver::fromASContact() $message-birthday should be the UTC > time as well. We then change the timezone in a clone of that object > to the local timezone and format it as Y-m-d. This should move the > datetime back to the correct date in Turba. Actually, on second thought the offset looks incorrect for DST in Europe/Berlin. If I'm not mistaken, that should be a UTC+2 offset, right? So it's off by one hour. Regardless, the server side will still shift the date *ahead* in your timezone, so even if the offset is off by an hour, the resulting Y-m-d value will still be the correct value. -- mike The Horde Project http://www.horde.org https://www.facebook.com/hordeproject https://www.twitter.com/hordeproject -- kronolith mailing list Frequently Asked Questions: http://wiki.horde.org/FAQ To unsubscribe, mail: [email protected]
smime.p7s
(application/pkcs7-signature, 5.7 KB) - not displayed