Hello Stuart, I've made a typo in the patch. It should be "ZONE" instead of "GMT". You can change code by hands after patching, it's close to line 208 in lib/RT/Date.pm.
Also, make sure ParseDate module is the latest from the CPAN. On Fri, Jun 8, 2012 at 11:12 AM, Stuart Browne <[email protected]> wrote: >> > <snip> >> > >> > Using either 'user' or 'server' as the timezone I get the same result >> but I'm probably missing something here for the fixed-date (I can accept >> that the date might be being modified elsewhere I'm yet to find), but the >> 'tomrorow 10am' shouldn't be a full day off. So the adding of the >> timezone offset before Time::ParsEdate::parsedate then removing it again >> appears to be causing the issue here; pushing today past the end of the >> day boundary. >> > >> >> I can believe it's wrong. Time::ParseDate can do timezones, but >> timezones support is very limited, so we do our timezones after >> parsing in UTC. Understandably 'tomorrow 10am' in london while you're >> somewhere else is completely different thing. >> >> We do some compensation in NOW argument and in theory it should work. >> Are you on the latest version of the module? >> >> Never noticed before that ZONE argument can take whatever TZ >> environment variable can take. May be attached patch will just work. >> Have not tested it. Applies cleanly to 3.8 and 4.0. >> >> > I'll try this routine tomorrow morning (before 10am) to see if it shows >> the right thing, then try to figure out a way to get it to return the same >> result for the two RT::Date outputs. > > Ruslan, > > I’m using RT 3.8.8 at the moment. did some tests this morning (before the > 10-hour's from UTC) and all the times aligned. With your patch, the worded > time was off by TZ: > > # > # BEFORE 10AM > # > > # > # Before patch > # > [bekar@psg-apps tmp]$ ./test.pl > current time() output: 1339111474 > > fixed-date Time::ParseDate: 1339200000 > tomorrow 10am Time::ParseDate: 1339200000 > > fixed-date RT::Date output: 1339200000 > tomorrow 10am RT::Date output: 1339200000 > timezone according to RT::Date: 36000 > timezone according to RT::Date: 36000 > > # > # After patch > # > [bekar@psg-apps tmp]$ ./test.pl > current time() output: 1339111434 > > fixed-date Time::ParseDate: 1339200000 > tomorrow 10am Time::ParseDate: 1339200000 > > fixed-date RT::Date output: 1339200000 > tomorrow 10am RT::Date output: 1339236000 > timezone according to RT::Date: 36000 > timezone according to RT::Date: 36000 > > This was fine all the way until there was TZ seconds until the end of the day > (after 14:00 for me). Results from that period: > > # > # After 14:00 > # > > # > # Before Patch > # > [bekar@psg-apps tmp]$ ./test.pl > current time() output: 1339128542 > > fixed-date Time::ParseDate: 1339200000 > tomorrow 10am Time::ParseDate: 1339200000 > > fixed-date RT::Date output: 1339200000 > tomorrow 10am RT::Date output: 1339286400 > timezone according to RT::Date: 36000 > timezone according to RT::Date: 36000 > > # > # After Patch > # > [bekar@psg-apps tmp]$ ./test.pl > current time() output: 1339128507 > > fixed-date Time::ParseDate: 1339200000 > tomorrow 10am Time::ParseDate: 1339200000 > > fixed-date RT::Date output: 1339200000 > tomorrow 10am RT::Date output: 1339236000 > timezone according to RT::Date: 36000 > timezone according to RT::Date: 36000 > > So the un-patched is definitely wrong. The patched is more consistent but > sadly still wrong. Perhaps putting the removal of TZ back in to get the > expected result more consistently: > > # > # Additional line > # > [bekar@psg-apps tmp]$ ./test.pl > current time() output: 1339139429 > > fixed-date Time::ParseDate: 1339200000 > tomorrow 10am Time::ParseDate: 1339200000 > > fixed-date RT::Date output: 1339200000 > tomorrow 10am RT::Date output: 1339200000 > timezone according to RT::Date: 36000 > timezone according to RT::Date: 36000 > > Coming up to a public holiday here so I won't be in a position to do any > testing until Tue/Wed next week. I'll try it again before 10-am to see if I > get a consistent result. > > Stuart -- Best regards, Ruslan.
