public function xml() { $bool = false; $result = new \org\rhaco\Xml('entry'); foreach ($this->props() as $name => $value) { if (!empty($value)) { $bool = true; switch ($name) { case 'xmlns': $result->attr('xmlns', $value); break; case 'id': case 'title': $result->add(new \org\rhaco\Xml($name, $value)); break; case 'published': case 'updated': case 'issued': $result->add(new \org\rhaco\Xml($name, \org\rhaco\lang\Date::format_atom($value))); break; default: if (is_array($value)) { foreach ($value as $v) { try { $result->add($v instanceof \org\rhaco\net\xml\atom\Object ? $v->xml() : (string) $v); } catch (\org\rhaco\net\xml\atom\NotfoundException $e) { } } } else { if (is_object($value)) { try { $result->add($value instanceof \org\rhaco\net\xml\atom\Object ? $value->xml() : $value); } catch (\org\rhaco\net\xml\atom\NotfoundException $e) { } } else { $result->add(new \org\rhaco\Xml($name, $value)); break; } } } } } if (!$bool) { throw new \org\rhaco\net\xml\atom\NotfoundException(); } return $result; }
<?php eq(5, \org\rhaco\lang\Date::age(20001010, \org\rhaco\lang\Date::parse_date("2005/01/01"))); eq(6, \org\rhaco\lang\Date::age(20001010, \org\rhaco\lang\Date::parse_date("2005/10/10"))); eq(5, \org\rhaco\lang\Date::age(20001010, \org\rhaco\lang\Date::parse_date("2005/10/9"))); eq(5, \org\rhaco\lang\Date::age(20001010, \org\rhaco\lang\Date::parse_date("2005/10/11")));
<?php eq(3661, \org\rhaco\lang\Date::parse_time("01:01:01")); eq(3661, \org\rhaco\lang\Date::parse_time("1:1:1")); eq(61, \org\rhaco\lang\Date::parse_time("0:1:1")); eq(null, \org\rhaco\lang\Date::parse_time("0/1/1")); eq(0, \org\rhaco\lang\Date::parse_time("00:00:00")); eq(0, \org\rhaco\lang\Date::parse_time("0")); eq(null, \org\rhaco\lang\Date::parse_time("")); eq(null, \org\rhaco\lang\Date::parse_time(null)); eq(null, \org\rhaco\lang\Date::parse_time("00/00/00")); eq(726.4, \org\rhaco\lang\Date::parse_time("00:12:06.40"));
<?php eq("2007/07/19", \org\rhaco\lang\Date::format("2007-07-18T16:16:31+00:00", "Y/m/d")); eq("2007-07-18T16:16:31Z", \org\rhaco\lang\Date::format_atom(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_cookie(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("2008/04/07", \org\rhaco\lang\Date::format_date(20080407)); eq("208/04/07", \org\rhaco\lang\Date::format_date(2080407)); eq("2007/07/19 01:16:31 (Thu)", \org\rhaco\lang\Date::format_full(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("2007-07-19T01:16:31+0900", \org\rhaco\lang\Date::format_ISO8601(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("01:01:01", \org\rhaco\lang\Date::format_time(3661)); eq("00:01:01", \org\rhaco\lang\Date::format_time(61)); eq("300:01:01", \org\rhaco\lang\Date::format_time(1080061)); eq("00:00:00", \org\rhaco\lang\Date::format_time(0)); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_RFC822(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thursday, 19-Jul-07 01:16:31 JST", \org\rhaco\lang\Date::format_RFC850(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thursday, 19-Jul-07 01:16:31 JST", \org\rhaco\lang\Date::format_RFC1036(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_RFC1123(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 +0900", \org\rhaco\lang\Date::format_RFC2822(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_rss(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("2007-07-19T01:16:31+09:00", \org\rhaco\lang\Date::format_w3c(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("D:20070719011631+09'00'", \org\rhaco\lang\Date::format_pdf(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00")));
<?php eq(time() + 1, \org\rhaco\lang\Date::add(time(), 1, 0)); eq(time() + 60, \org\rhaco\lang\Date::add(time(), 0, 1)); eq(time() + 3600, \org\rhaco\lang\Date::add(time(), 0, 0, 1)); eq(time() - 1, \org\rhaco\lang\Date::add(time(), -1, 0)); eq(time() - 60, \org\rhaco\lang\Date::add(time(), 0, -1)); eq(time() - 3600, \org\rhaco\lang\Date::add(time(), 0, 0, -1));
<?php $time = time(); eq(date("Y-m-d H:i:s", $time + 3600), date("Y-m-d H:i:s", \org\rhaco\lang\Date::add_hour(1, $time))); eq(date("Y-m-d H:i:s", $time - 3600), date("Y-m-d H:i:s", \org\rhaco\lang\Date::add_hour(-1, $time)));
protected function __str__() { $result = new \org\rhaco\Xml('feed'); $result->attr('xmlns', self::XMLNS); foreach ($this->ar_xmlns() as $ns => $url) { $result->attr('xmlns:' . $ns, $url); } foreach ($this->props() as $name => $value) { if (!empty($value)) { switch ($name) { case 'title': case 'subtitle': case 'id': case 'generator': $result->add(new \org\rhaco\Xml($name, $value)); break; case 'updated': $result->add(new \org\rhaco\Xml($name, \org\rhaco\lang\Date::format_atom($value))); break; default: if (is_array($value)) { foreach ($value as $v) { try { $result->add($v instanceof \org\rhaco\net\xml\atom\Object ? $v->xml() : $v); } catch (\org\rhaco\net\xml\atom\NotfoundException $e) { } } } } } } return $result->get(); }
<?php eq(0, \org\rhaco\lang\Date::weekday(19050129)); eq(1, \org\rhaco\lang\Date::weekday(18890211)); eq(2, \org\rhaco\lang\Date::weekday(20050927)); eq(3, \org\rhaco\lang\Date::weekday(17890304)); eq(4, \org\rhaco\lang\Date::weekday(15880721)); eq(5, \org\rhaco\lang\Date::weekday(18681023)); eq(6, \org\rhaco\lang\Date::weekday(16001021)); eq(0, \org\rhaco\lang\Date::weekday("1905-01-29")); eq(1, \org\rhaco\lang\Date::weekday("1889/02/11"));
<?php eq(-297993600, \org\rhaco\lang\Date::parse_date("1960-07-23 05:00:00+05:00")); eq("1960-07-23 09:00:00", date("Y-m-d H:i:s", \org\rhaco\lang\Date::parse_date("1960-07-23 05:00:00+05:00"))); eq("1976-07-23 09:00:00", date("Y-m-d H:i:s", \org\rhaco\lang\Date::parse_date("1976-07-23 05:00:00+05:00"))); eq("2005-08-15 09:52:01", date("Y-m-d H:i:s", \org\rhaco\lang\Date::parse_date("2005-08-15T01:52:01+0100"))); eq("2005-08-15 10:01:01", date("Y-m-d H:i:s", \org\rhaco\lang\Date::parse_date("Mon, 15 Aug 2005 01:01:01 UTC"))); eq(null, \org\rhaco\lang\Date::parse_date(null)); eq(null, \org\rhaco\lang\Date::parse_date(0)); eq(null, \org\rhaco\lang\Date::parse_date("")); eq("2005-03-02 00:00:00", date("Y-m-d H:i:s", \org\rhaco\lang\Date::parse_date("2005/02/30 00:00:00"))); eq(date("Y-m-d H:i:s", time()), date("Y-m-d H:i:s", \org\rhaco\lang\Date::parse_date(time())));
<?php eq(true, \org\rhaco\lang\Date::eq("2008/03/31", "2008/03/31")); eq(false, \org\rhaco\lang\Date::eq("2008/03/31", "2008/03/30")); eq(true, \org\rhaco\lang\Date::gt("2008/03/31", "2008/03/30")); eq(false, \org\rhaco\lang\Date::gt("2008/03/30", "2008/03/31")); eq(false, \org\rhaco\lang\Date::gt("2008/03/31", "2008/03/31")); eq(true, \org\rhaco\lang\Date::gte("2008/03/31", "2008/03/30")); eq(false, \org\rhaco\lang\Date::gte("2008/03/30", "2008/03/31")); eq(true, \org\rhaco\lang\Date::gte("2008/03/31", "2008/03/31"));
<?php $time = time(); eq(date("Y-m-d H:i:s", $time + 3600 * 24), date("Y-m-d H:i:s", \org\rhaco\lang\Date::add_day(1, $time))); eq(date("Y-m-d H:i:s", $time - 3600 * 24), date("Y-m-d H:i:s", \org\rhaco\lang\Date::add_day(-1, $time)));
<?php eq(20080401, \org\rhaco\lang\Date::parse_int("2008/04/01")); eq(20080401, \org\rhaco\lang\Date::parse_int("2008-04-01")); eq(20080401, \org\rhaco\lang\Date::parse_int("2008-04/01")); eq(20080401, \org\rhaco\lang\Date::parse_int("2008-4-1")); eq(2080401, \org\rhaco\lang\Date::parse_int("2080401")); eq(null, \org\rhaco\lang\Date::parse_int("2008A04A01")); eq(intval(date("Ymd")), \org\rhaco\lang\Date::parse_int(time())); eq(19000401, \org\rhaco\lang\Date::parse_int("1900-4-1")); eq(19001010, \org\rhaco\lang\Date::parse_int("1900/10/10")); eq(10101, \org\rhaco\lang\Date::parse_int("1/1/1")); eq(19601110, \org\rhaco\lang\Date::parse_int("1960/11/10"));