3 namespace PhpXmlRpc\Helper;
8 * Given a timestamp, return the corresponding ISO8601 encoded string.
10 * Really, timezones ought to be supported
11 * but the XML-RPC spec says:
13 * "Don't assume a timezone. It should be specified by the server in its
14 * documentation what assumptions it makes about timezones."
16 * These routines always assume localtime unless
17 * $utc is set to 1, in which case UTC is assumed
18 * and an adjustment for locale is made when encoding
20 * @param int $timet (timestamp)
21 * @param int $utc (0 or 1)
24 public static function iso8601_encode($timet, $utc=0)
28 $t=strftime("%Y%m%dT%H:%M:%S", $timet);
32 if(function_exists('gmstrftime'))
34 // gmstrftime doesn't exist in some versions
36 $t=gmstrftime("%Y%m%dT%H:%M:%S", $timet);
40 $t=strftime("%Y%m%dT%H:%M:%S", $timet-date('Z'));
47 * Given an ISO8601 date string, return a timet in the localtime, or UTC
48 * @param string $idate
49 * @param int $utc either 0 or 1
50 * @return int (datetime)
52 public static function iso8601_decode($idate, $utc=0)
55 if(preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/', $idate, $regs))
59 $t=gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
63 $t=mktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);