Skip to content

Loading…

Tracker API setForceVisitDateTime should accept UNIX Timestamp as well as date time #2299

Closed
mattab opened this Issue · 4 comments

2 participants

@mattab
Piwik Open Source Analytics member

per title

@mattab
Piwik Open Source Analytics member

(In [4411]) Fixes #2299, refs #2172 (in case it is easier for you, now the function will accept a timestamp as well)

@JulienMoumne
Piwik Open Source Analytics member

On my box, PHP 5.3.5, Windows 7x64, http://dev.piwik.org/trac/browser/tags/1.5.2b4/core/Tracker/Visit.php#L66 returns true when an unix timestamp is provided.

is_int(123) = true
is_int("123") = false

The timestamp is therefore fed to strtotime which returns false.

The tracking output confirms the problem :

Current datetime: 1970-01-01 00:00:00

And the tracking process fails with the following error :

Error query: SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'visit_total_time' at row 1 In query: UPDATE piwik_log_visit SET visit_total_actions = visit_total_actions + 1, visit_exit_idaction_url = ?, visit_exit_idaction_name = ?, visit_last_action_time = ?, visit_total_time = ?, visit_goal_buyer = ? WHERE idsite = ? AND idvisit = ? Parameters: array ( 0 => 5, 1 => 1, 2 => '1970-01-01 00:00:00', 3 => -1302306504, 4 => '0', 5 => 1, 6 => '20', )
@mattab
Piwik Open Source Analytics member

Also http://forum.piwik.org/read.php?2,80273



$t->setForceVisitDateTime(date("Y-m-d H:i:s", 1296546002))

This is being rendered as:

cdt=2011-02-01+07%3A40%3A02

rather than

cdt=2011-02-01%2007%3A40%3A02

I believe the setForceVisitDateTime() function is adding the +. 
  • must clarify API and provide better examples maybe?
@mattab
Piwik Open Source Analytics member

(In [5254]) Fixes #2299

@mattab mattab added this to the 1.6 Piwik 1.6 milestone
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.