The calculation of the timestamp in date/time-fields is buggy. There have been serval bug-reports for this error (see here, here or here).
Line 107 of the file field_timestamp.inc looks like this (in function flexinode_validate_date):
$result = gmmktime($hour, $node->{$prefix . 'minute'}, 0, $node->{$prefix . 'month'}, $node->{$prefix . 'day'}, $node->{$prefix . 'year'}) - $GLOBALS['user']->timezone;
If user configured timezones are disabled, the variable "$GLOBALS['user']->timezone" is empty and this code does not calculate the timestamp right. To fix this problem, i changed this line to
global $user;
if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
$timezone = $user->timezone;
}
else {
$timezone = variable_get('date_default_timezone', 0);
};
$result = gmmktime($hour, $node->{$prefix . 'minute'}, 0, $node->{$prefix . 'month'}, $node->{$prefix . 'day\
'}, $node->{$prefix . 'year'}) - $timezone;
I found an other patch for this problem here.
Is it possible to fix this bug in the next release of flexinode 4.6?