WordPress 4.7
[autoinstalls/wordpress.git] / wp-includes / IXR / class-IXR-date.php
1 <?php
2
3 /**
4  * IXR_Date
5  *
6  * @package IXR
7  * @since 1.5.0
8  */
9 class IXR_Date {
10     var $year;
11     var $month;
12     var $day;
13     var $hour;
14     var $minute;
15     var $second;
16     var $timezone;
17
18         /**
19          * PHP5 constructor.
20          */
21     function __construct( $time )
22     {
23         // $time can be a PHP timestamp or an ISO one
24         if (is_numeric($time)) {
25             $this->parseTimestamp($time);
26         } else {
27             $this->parseIso($time);
28         }
29     }
30
31         /**
32          * PHP4 constructor.
33          */
34         public function IXR_Date( $time ) {
35                 self::__construct( $time );
36         }
37
38     function parseTimestamp($timestamp)
39     {
40         $this->year = date('Y', $timestamp);
41         $this->month = date('m', $timestamp);
42         $this->day = date('d', $timestamp);
43         $this->hour = date('H', $timestamp);
44         $this->minute = date('i', $timestamp);
45         $this->second = date('s', $timestamp);
46         $this->timezone = '';
47     }
48
49     function parseIso($iso)
50     {
51         $this->year = substr($iso, 0, 4);
52         $this->month = substr($iso, 4, 2);
53         $this->day = substr($iso, 6, 2);
54         $this->hour = substr($iso, 9, 2);
55         $this->minute = substr($iso, 12, 2);
56         $this->second = substr($iso, 15, 2);
57         $this->timezone = substr($iso, 17);
58     }
59
60     function getIso()
61     {
62         return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second.$this->timezone;
63     }
64
65     function getXml()
66     {
67         return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>';
68     }
69
70     function getTimestamp()
71     {
72         return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
73     }
74 }