Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Live Plugin has a timezone problem #1769

Closed
anonymous-matomo-user opened this issue Oct 14, 2010 · 6 comments
Closed

Live Plugin has a timezone problem #1769

anonymous-matomo-user opened this issue Oct 14, 2010 · 6 comments
Assignees
Labels
Bug For errors / faults / flaws / inconsistencies etc.
Milestone

Comments

@anonymous-matomo-user
Copy link

As far as I can tell, visit_first_action_time is stored in the database in UTC, the Live visitor log, however, does not account for that (or does so insufficiently) in the WHERE clause.
For example: I have a website on UTC+02:00, and I had a visitor at 23:05. So this visitor was displayed, when the day of the recorded server time was selected in the calendar, however the displayed time was corrected for the timezone, which gave a very interesting effect: instead of displaying as 2010/10/13 23:05 it was displayed as 2010/10/14 01:05. After selecting 2010/10/14 in the calendar, it was not displayed at all.

The following patch needs to be applied, to make the visitors show up at the day they visited by the website timezone, not server time (description fits on trunk-r3248):

* plugins/Live/API.php  
  modify function loadLastVisitorDetailsFromDatabase, replace 
  $processedDate = Piwik_Date::factory($date,$currentTimezone);
  with
  $processedDate = Piwik_Date::factory($date)->setTimezone($currentTimezone);

  modify function loadLastVisitorDetailsFromDatabase, replace
  array_push(  $whereBind,
    $processedPeriod->getDateStart()->toString(),
    $processedPeriod->getDateEnd()->addDay(1)->toString());

  with
  array_push(  $whereBind,
    $processedPeriod->getDateStart()->toString('Y-m-d H:m:s'),
    $processedPeriod->getDateEnd()->addDay(1)->toString('Y-m-d H:m:s'));
@anonymous-matomo-user
Copy link
Author

Attachment:
piwik_live_bug01.png

@anonymous-matomo-user
Copy link
Author

Attachment:
piwik_live_bug02.png

@peterbo
Copy link
Contributor

peterbo commented Oct 14, 2010

Dupe of #1375

Please apply vipsoft's patch / changeset [3246]. Please come up with feedback for the patch and if it fixes the problem.

@robocoder
Copy link
Contributor

I'll add some unit tests to the Live plugin.

@robocoder
Copy link
Contributor

At some point, I reverted [3026]. I'll re-test with UTC +/- offsets over a 24 hour period.

@robocoder
Copy link
Contributor

(In [3390]) fixes #1769 - Live Visitor Log timezone problem; thanks Ilinsekt for the patch (the only problem was changing H:m:s to H:i:s)

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug For errors / faults / flaws / inconsistencies etc.
Projects
None yet
Development

No branches or pull requests

3 participants