/** * Преобразует значение * * Преобразует значение полученное из БД в нужный формат, для работы с ним в php * * @params DB_ColumnMeta $metadata мета-данные колонки * @params mixed $value значение * * @return mixed */ public function cast_column(DB_ColumnMeta $metadata, $value) { switch ($metadata->type) { case 'datetime': case 'timestamp': case 'date': return is_null($value) ? null : Time_DateTime::parse($value); case 'time': return is_null($value) ? null : Time_DateTime::parse($value, TIME::FMT_HMS); case 'boolean': return $value ? true : false; case 'longlong': case 'int24': case 'integer': case 'long': case 'tiny': case 'short': return is_null($value) ? null : (int) $value; case 'float': case 'double': return is_null($value) ? null : (double) $value; default: return $value; } }
/** * @covers Time_DateTime::datetime2timestamp */ public function testDatetime2timestamp() { $format_dmy = 'd.m.Y'; $string_dmy = '11.09.2011'; $date = Time_DateTime::parse($string_dmy, $format_dmy); $date->setTime(0, 0, 0); $this->assertEquals($date->ts, Time_DateTime::datetime2timestamp($string_dmy)); $format_dmy_Gi = 'd.m.Y - G:i'; $string_dmy_Gi = '11.09.2011 - 12:10'; $date = Time_DateTime::parse($string_dmy_Gi, $format_dmy_Gi); $this->assertEquals($date->ts, Time_DateTime::datetime2timestamp($string_dmy_Gi)); $format_dmy_Gis = 'd.m.Y - G:i:s'; $string_dmy_Gis = '11.09.2011 - 12:10:11'; $date = Time_DateTime::parse($string_dmy_Gis, $format_dmy_Gis); //var_dump($date->ts); $this->assertEquals($date->ts, Time_DateTime::datetime2timestamp($string_dmy_Gis)); $string = '11-09-2011 12:10:11'; $date = Time_DateTime::parse($string); //var_dump($date->ts); $this->assertEquals($date->ts, Time_DateTime::datetime2timestamp($string)); $this->assertEquals(0, Time_DateTime::datetime2timestamp('')); }
/** * Переводит дату из строкового представления в timestamp * * В качестве параметра принимаются значения вида: "d.m.y", "d.m.y - G:i", "d.m.y - G:i:s". * Если передана некорректная строка, то будет возвращен ноль. * * @params string $in дата * * @return integer */ public static function s2date($in) { $date = Time_DateTime::parse($in, '!d.m.Y'); if (!$date) { $date = Time_DateTime::parse($in, 'd.m.Y - G:i'); } if (!$date) { $date = Time_DateTime::parse($in, 'd.m.Y - G:i:s'); } return $date ? $date->ts : 0; }