예제 #1
0
파일: PostgreSQL.php 프로젝트: techart/tao
 /**
  * Преобразует значение полученное из БД в нужный формат, для работы с ним в php
  *
  * @param DB_ColumnMeta $metadata
  * @param               $value
  *
  * @return mixed
  */
 public function cast_column(DB_ColumnMeta $metadata, $value)
 {
     switch (true) {
         case $metadata->type == 'date':
             return is_null($value) ? null : Time::parse($value);
         case $metadata->type == 'timestamp':
             return is_null($value) ? null : Time::parse($value);
         case Core_Strings::starts_with($metadata->type, '_'):
             $arr = array();
             foreach (explode(',', Core_Strings::substr($value, 1, strlen($value) - 2)) as $element) {
                 $arr[] = $this->cast_column(new DB_ColumnMeta($metadata->name, Core_Strings::substr($metadata->type, 1), $metadata->length, $metadata->precision), ltrim(rtrim($element, '"'), '"'));
             }
             return $arr;
         case Core_Strings::starts_with($metadata->type, 'int'):
             return (int) $value;
         case in_array($metadata->type, array('varchar', 'text')):
             return (string) $value;
         case in_array($metadata->type, array('numeric', 'double', 'float')):
             return (double) $value;
         default:
             return $value;
     }
 }
예제 #2
0
파일: SQLDateStr.php 프로젝트: techart/tao
 public function assign_to_object($form, $object, $name, $data)
 {
     $object->{$name} = Time::parse($form[$name]);
 }
예제 #3
0
파일: HTTP.php 프로젝트: techart/tao
 /**
  * Возвращает значение поля
  *
  * @param string $property
  *
  * @return mixed
  */
 public function __get($property)
 {
     if ($wants_date = $property == 'date' || Core_Strings::ends_with($property, '_date')) {
         $property = preg_replace('/_date$/', '', $property);
     }
     return isset($this->fields[$idx = $this->canonicalize($property)]) ? $wants_date ? Time::parse($this->fields[$idx], Time::FMT_RFC1123) : $this->fields[$idx] : null;
 }
예제 #4
0
파일: Time.php 프로젝트: techart/tao
 public static function datetime2timestamp($time, $format = '')
 {
     $res = self::s2date($time);
     if ($res > 0) {
         return $res;
     } else {
         $date = Time::parse($time, $format);
         return $date ? $date->ts : 0;
     }
 }