protected function _output($value) { if (is_object($value)) { $value = (array) $value; } if (is_array($value)) { $valueFrom = key_exists($this->_keyFrom, $value) ? $value[$this->_keyFrom] : null; $valueTo = key_exists($this->_keyTo, $value) ? $value[$this->_keyTo] : null; $row_items = $this->_item->getItems(); if (is_array($valueFrom)) { if ($row_items[$this->_keyFrom]->getNativeType() == 'DATE') { $valueFrom = DB_Type_Date::extractDate($valueFrom); } else { return $value; } } if (is_array($valueTo)) { if ($row_items[$this->_keyTo]->getNativeType() == 'DATE') { $valueTo = DB_Type_Date::extractDate($valueTo); } else { return $value; } } if ($valueFrom > $valueTo) { throw new DB_Type_Exception_Range($this, $valueFrom, $valueTo); } } return $value; }
protected function _output($value) { if (is_object($value)) $value = (array)$value; if (is_array($value)) { $valueFrom = array_key_exists($this->_keyFrom, $value) ? $value[$this->_keyFrom] : NULL; $valueTo = array_key_exists($this->_keyTo, $value) ? $value[$this->_keyTo] : NULL; $row_items = $this->_item->getItems(); if (is_array($valueFrom)) { if ($row_items[$this->_keyFrom]->getNativeType() == 'DATE') { $valueFrom = DB_Type_Date::extractDate($valueFrom); $valueFrom = $valueFrom->format('Y-m-d'); } else return $value; } if (is_array($valueTo)) { if ($row_items[$this->_keyTo]->getNativeType() == 'DATE') { $valueTo = DB_Type_Date::extractDate($valueTo); $valueTo = $valueTo->format('Y-m-d'); } else return $value; } if ($valueFrom && $valueTo && $valueFrom > $valueTo) { throw new DB_Type_Exception_Range($this, $valueFrom, $valueTo); } $value[$this->_keyFrom] = $valueFrom; $value[$this->_keyTo] = $valueTo; } return $value; }
public function output($value) { if ($value === null) { return null; } /** * Value may be array of DateTime::createFromFormat parameters */ if (is_array($value)) { $value = DB_Type_Date::extractDate($value); } elseif ($this->_format != null) { $value = DB_Type_Date::convertFromFormat($this->_format, $value, $this->_timezone); } $value = self::truncTimestamp($value, $this->_trunc); return date("r", $value); }
<?php include '../utils/autoload.php'; $date_format = 'd.m.Y'; // Russian date format $dateParser = new DB_Type_Date(null, $date_format); $localized_date = '27.09.2011'; // save localized date to DB $output = $dateParser->output($localized_date); echo $output, "\n\n"; // 2011-09-27 // get localized date from DB $input = $dateParser->input($output); echo $input, "\n\n"; // 27.09.2011 // save date in custom format "on the fly" $output = $dateParser->output(array('m/d/Y', '11/27/2012')); echo $output, "\n\n"; // 2012-11-27