diff --git a/dibi/dibi.php b/dibi/dibi.php index 5db46c2e..a5301218 100644 --- a/dibi/dibi.php +++ b/dibi/dibi.php @@ -527,10 +527,10 @@ class dibi { if ($time === NULL) { $time = time(); // current time - } elseif (is_string($time)) { - $time = strtotime($time); // try convert to timestamp + } elseif (is_numeric($time)) { + $time = (int) $time; // timestamp } else { - $time = (int) $time; + $time = strtotime($time); // try convert to timestamp } return new DibiVariable($time, dibi::FIELD_DATETIME); } diff --git a/dibi/libs/DibiResult.php b/dibi/libs/DibiResult.php index 213dc63e..ba96332a 100644 --- a/dibi/libs/DibiResult.php +++ b/dibi/libs/DibiResult.php @@ -503,7 +503,7 @@ class DibiResult extends DibiObject implements IDataSource case dibi::FIELD_DATE: case dibi::FIELD_DATETIME: - $value = strtotime($value); + $value = is_numeric($value) ? (int) $value : strtotime($value); return $format === NULL ? $value : date($format, $value); case dibi::FIELD_BOOL: diff --git a/dibi/libs/DibiTranslator.php b/dibi/libs/DibiTranslator.php index e7b4afa9..cbed9e17 100644 --- a/dibi/libs/DibiTranslator.php +++ b/dibi/libs/DibiTranslator.php @@ -307,7 +307,7 @@ final class DibiTranslator extends DibiObject case 'd': // date case 't': // datetime - return $this->driver->escape(is_string($value) ? strtotime($value) : $value, $modifier); + return $this->driver->escape(is_numeric($value) ? (int) $value : strtotime($value), $modifier); case 'by': case 'n': // identifier name diff --git a/examples/sample.mdb b/examples/sample.mdb index 1185a92e..e7730c28 100644 Binary files a/examples/sample.mdb and b/examples/sample.mdb differ diff --git a/examples/sample.sdb b/examples/sample.sdb index 99e7a1bd..01fa5119 100644 Binary files a/examples/sample.sdb and b/examples/sample.sdb differ