[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/vendor/openpsa/universalfeedcreator/lib/Element/ -> FeedDate.php (source)

   1  <?php
   2  
   3  /**
   4   * FeedDate is an internal class that stores a date for a feed or feed item.
   5   * Usually, you won't need to use this.
   6   */
   7  class FeedDate
   8  {
   9      protected $unix;
  10  
  11      /**
  12       * Creates a new instance of FeedDate representing a given date.
  13       * Accepts RFC 822, ISO 8601 date formats (or anything that PHP's DateTime
  14       * can parse, really) as well as unix time stamps.
  15       *
  16       * @param mixed $dateString optional the date this FeedDate will represent. If not specified, the current date and
  17       *                          time is used.
  18       */
  19      public function __construct($dateString = "")
  20      {
  21          if ($dateString == "") {
  22              $dateString = date("r");
  23          }
  24  
  25          if (is_integer($dateString)) {
  26              $this->unix = $dateString;
  27          } else {
  28              try {
  29                  $this->unix = (int) (new Datetime($dateString))->format('U');
  30              }  catch (Exception $e) {
  31                  $this->unix = 0;
  32              }
  33          }
  34      }
  35  
  36      /**
  37       * Gets the date stored in this FeedDate as an RFC 822 date.
  38       *
  39       * @return string a date in RFC 822 format
  40       */
  41      public function rfc822()
  42      {
  43          //return gmdate("r",$this->unix);
  44          $date = gmdate("D, d M Y H:i:s O", $this->unix);
  45  
  46          return $date;
  47      }
  48  
  49      /**
  50       * Gets the date stored in this FeedDate as an ISO 8601 date.
  51       *
  52       * @return string a date in ISO 8601 format
  53       */
  54      public function iso8601()
  55      {
  56          $date = gmdate("Y-m-d\TH:i:sP", $this->unix);
  57  
  58          return $date;
  59      }
  60  
  61      /**
  62       * Gets the date stored in this FeedDate as unix time stamp.
  63       *
  64       * @return int a date as a unix time stamp
  65       */
  66      public function unix()
  67      {
  68          return $this->unix;
  69      }
  70  }