예제 #1
0
파일: ModuleTest.php 프로젝트: techart/tao
 /**
  * @covers Time::DateTime
  */
 public function testDateTime()
 {
     $this->assertEquals(Time::DateTime(), new Time_DateTime());
     $t = new Time_DateTime();
     $this->assertEquals(Time::DateTime($t->getTimestamp()), new Time_DateTime($t));
     $this->assertEquals(Time::DateTime($t), new Time_DateTime($t));
 }
예제 #2
0
파일: SQLDate.php 프로젝트: techart/tao
 public function assign_to_object($form, $object, $name, $data)
 {
     $d = (int) $form[$name . '_dd'];
     //$d = str_pad($d, 2, "0", STR_PAD_LEFT);
     $m = (int) $form[$name . '_mm'];
     //$m = str_pad($m, 2, "0", STR_PAD_LEFT);
     $y = (int) $form[$name . '_yy'];
     //$y = str_pad($y, 4, "0", STR_PAD_LEFT);
     $object[$name] = Time::DateTime("{$y}-{$m}-{$d}");
 }
예제 #3
0
파일: OpenId.php 프로젝트: techart/tao
 /**
  * @abstract
  *
  * @param Net_HTTP_Request $request
  * @param OpenId_Client    $client
  */
 public function retrieve(Net_HTTP_Request $request, OpenId_Client $client)
 {
     $values = array();
     $sreg_to_ax = array_flip(self::$ax_to_sreg);
     $schema_to_name = array_flip(array_merge($client->optional, $client->required));
     $prefix = 'openid.sreg.';
     foreach ($request->parameters as $k => $v) {
         if (Core_Strings::starts_with($k, $prefix) && ($name = substr($k, strlen($prefix))) && isset($sreg_to_ax[$name])) {
             $ax = $sreg_to_ax[$name];
             $alias = $schema_to_name[$ax];
             $values[$alias] = trim($this->is_date($ax, $v) ? Time::DateTime($v) : urldecode($v));
         }
     }
     return $values;
 }
예제 #4
0
파일: JSON.php 프로젝트: techart/tao
 /**
  * @param  $value
  *
  * @return Time_DateTime
  */
 protected function decode_datetime($value)
 {
     return Time::DateTime($value);
 }
예제 #5
0
파일: ExtJSTable.php 프로젝트: techart/tao
 public static function decode_value($value)
 {
     // a -> Array
     // n -> Number
     // d -> Date
     // b -> Boolean
     // s -> String
     // o -> Object
     // e -> Empty (null)
     $regexp = "/^(a|n|d|b|s|o|e)\\:(.*)\$/";
     preg_match($regexp, rawurldecode($value), $matches);
     if (empty($matches) || empty($matches[1])) {
         return;
         // non state
     }
     $type = $matches[1];
     $value = $matches[2];
     switch ($type) {
         case 'e':
             return null;
         case 'n':
             return (double) $value;
         case 'd':
             return Time::DateTime($value);
         case 'b':
             return $value == '1';
         case 'a':
             $all = array();
             if ($value != '') {
                 $split = explode('^', $value);
                 foreach ($split as $val) {
                     $all[] = self::decode_value($val);
                 }
             }
             return $all;
         case 'o':
             $all = array();
             if ($value != '') {
                 $split = explode('^', $value);
                 if (!empty($split)) {
                     foreach ($split as $val) {
                         $keyVal = explode('=', $val);
                         $all[$keyVal[0]] = self::decode_value($keyVal[1]);
                     }
                 }
             }
             return $all;
         default:
             return $value;
     }
 }
예제 #6
0
파일: Feed.php 프로젝트: techart/tao
 /**
  * Возвращает значение произвольного свойства с преобразованием типов и имен
  *
  * @param string     $query
  * @param DOMElement $element
  * @param int        $index
  *
  * @return mixed
  */
 public function get($query, DOMElement $element, $index = 0)
 {
     if ($this->has_child_nodes_for($e = $this->xpath($query, $element, $index))) {
         return $e;
     }
     return ($r = $this->node_value_for($e)) && Core_Strings::ends_with($query, 'ed') ? Time::DateTime($r) : $r;
 }
예제 #7
0
파일: Twitter.php 프로젝트: techart/tao
 /**
  * @param string $property
  *
  * @return mixed
  */
 public function __get($property)
 {
     if (!isset($this->values[$property])) {
         throw new Core_MissingPropertyException($property);
     }
     switch (true) {
         case is_array($this->values[$property]):
             return new self($this->values[$property]);
         case $this->is_date($property):
             return Time::DateTime($this->values[$property]);
         default:
             return $this->values[$property];
     }
 }
예제 #8
0
 /**
  * @covers Time_DateTime::as_rfc1123
  */
 public function testAs_rfc1123()
 {
     $d = '2011-09-11 12:10:11';
     $rfc1123 = 'Sun, 11 Sep 2011 12:10:11 +0400';
     $this->object = Time::DateTime($d);
     $this->assertEquals($rfc1123, $this->object->as_rfc1123());
 }
예제 #9
0
파일: AdWords.php 프로젝트: techart/tao
 /**
  * @return Time_DateTime
  */
 protected function get_min()
 {
     return Time::DateTime($this->attrs['min']);
 }
예제 #10
0
파일: Time.php 프로젝트: techart/tao
 /**
  * Суммирует дату/время с секундами
  *
  * @params string $datetime
  * @params integer $sec
  *
  * @return string|false
  */
 static function datetime_add($datetime, $sec)
 {
     $date = Time::DateTime($datetime);
     if (!$date) {
         return false;
     }
     $date->add($sec);
     return $date->as_string();
 }
예제 #11
0
파일: MSSQL.php 프로젝트: techart/tao
 /**
  * Преобразует значение полученное из БД в нужный формат, для работы с ним в php
  *
  * @param DB_ColumnMeta $metadata
  * @param               $value
  *
  * @return mixed
  */
 public function cast_column(DB_ColumnMeta $metadata, $value)
 {
     switch ($metadata->type) {
         case 91:
         case 93:
         case -2:
             return is_null($value) ? null : Time::DateTime($value);
         case -5:
         case 4:
         case 5:
         case -6:
         case 2:
             return (int) $value;
         case 6:
         case 7:
             return (double) $value;
         case 1:
         case -8:
         case -10:
         case -9:
         case -1:
         case 12:
             return DB_Adapter_MSSQL::option('convert') ? iconv(DB_Adapter_MSSQL::option('server_charset'), DB_Adapter_MSSQL::option('client_charset'), $value) : $value;
         default:
             return $value;
     }
 }
예제 #12
0
파일: L10N.php 프로젝트: techart/tao
 /**
  * Возвращает отформатированную строку, подставляя дату в нужном формате
  *
  * @param string                   $format
  * @param Time_DateTime|int|string $date
  * @param int                      $variant
  *
  * @return string
  */
 public function strftime($format, $date, $variant = L10N::FULL)
 {
     if (!($date = Time::DateTime($date))) {
         throw new Core_InvalidArgumentTypeException('date', $date);
     }
     return strftime(preg_replace(array('/%a/', '/%A/', '/%b/', '/%d([^%]*)%B/', '/%e([^%]*)%B/', '/%B/'), array($this->variant(L10N::ABBREVIATED, 'weekdays', $date->wday), $this->variant(L10N::FULL, 'weekdays', $date->wday), $this->variant(L10N::ABBREVIATED, 'months', $date->month), sprintf('%02d\\1%s', $date->day, $this->variant(L10N::INFLECTED, 'months', $date->month)), sprintf('%d\\1%s', $date->day, $this->variant(L10N::INFLECTED, 'months', $date->month)), $this->variant($variant, 'months', $date->month)), $format), $date->timestamp);
 }
예제 #13
0
파일: FS.php 프로젝트: techart/tao
 /**
  * Конструктор
  *
  * @param  $object
  */
 public function __construct($object)
 {
     if (!($stat = Core_Types::is_resource($object) ? @fstat($object) : @stat((string) $object))) {
         throw new IO_FS_StatException($object);
     }
     foreach ($stat as $k => $v) {
         switch ($k) {
             case 'atime':
             case 'mtime':
             case 'ctime':
                 $this->stat[$k] = Time::DateTime($v);
                 break;
             default:
                 $this->stat[$k] = $v;
         }
     }
 }