diff --git a/dibi/dibi.php b/dibi/dibi.php index a5301218..20b21444 100644 --- a/dibi/dibi.php +++ b/dibi/dibi.php @@ -527,8 +527,13 @@ class dibi { if ($time === NULL) { $time = time(); // current time + } elseif (is_numeric($time)) { $time = (int) $time; // timestamp + + } elseif ($time instanceof DateTime) { + $time = $time->format('U'); + } else { $time = strtotime($time); // try convert to timestamp } diff --git a/dibi/libs/DibiProfiler.php b/dibi/libs/DibiProfiler.php index ad70e60b..0de39caa 100644 --- a/dibi/libs/DibiProfiler.php +++ b/dibi/libs/DibiProfiler.php @@ -108,7 +108,7 @@ class DibiProfiler extends DibiObject implements IDibiProfiler if (($event & $this->filter) === 0) return; if ($event & self::QUERY) { - if ($this->useFirebug) { + if ($this->useFirebug && !headers_sent()) { self::$table[] = array( sprintf('%0.3f', dibi::$elapsedTime * 1000), trim($sql), diff --git a/dibi/libs/DibiTranslator.php b/dibi/libs/DibiTranslator.php index cbed9e17..8429fe6d 100644 --- a/dibi/libs/DibiTranslator.php +++ b/dibi/libs/DibiTranslator.php @@ -307,7 +307,8 @@ final class DibiTranslator extends DibiObject case 'd': // date case 't': // datetime - return $this->driver->escape(is_numeric($value) ? (int) $value : strtotime($value), $modifier); + $value = is_numeric($value) ? (int) $value : ($value instanceof DateTime ? $value->format('U') : strtotime($value)); + return $this->driver->escape($value, $modifier); case 'by': case 'n': // identifier name