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', )
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 +.
(In [5254]) Fixes #2299