Esempio n. 1
0
 /**
  * Calculates the difference between dates.
  *
  * @param   DateTime  $base         The base date.
  * @param   DateTime  $datetime     The date to compare to. Default is null and this means that
  *                                  the base date will be compared to the current time.
  *
  * @param   integer   $detailLevel  The level of detail to retrieve.
  *
  * @return  array
  *
  * @since   2.0.0
  */
 private function calc(DateTime $base, DateTime $datetime = null, $detailLevel = 1)
 {
     $this->translator = $base->getTranslator();
     $datetime = is_null($datetime) ? DateTime::now() : $datetime;
     $detailLevel = intval($detailLevel);
     $diff = $this->diffInUnits($base->diff($datetime, true), $detailLevel);
     $item = 'just_now';
     if (!$this->isNow($diff)) {
         $item = $base->isAfter($datetime) ? 'in' : 'ago';
     }
     return array($item, $diff);
 }
Esempio n. 2
0
 /**
  * since
  *
  * @param   string|DateTime $date
  *
  * @return  string
  */
 public function since($date)
 {
     if (!$date instanceof DateTime) {
         $date = new DateTime($date);
     }
     $now = DateTime::now();
     $compare = DateTime::now();
     $compare = $compare->subDays(30);
     if ($date->isBefore($compare)) {
         return $date->format('l, d F Y');
     }
     return $now->since($date);
 }
Esempio n. 3
0
 /**
  * Return a value of the property.
  *
  * @param   DateTime  $datetime  The DateTime object.
  * @param   string    $name      The name of the property.
  *
  * @return  string
  *
  * @since   2.0.0
  */
 public function get(DateTime $datetime, $name)
 {
     $value = null;
     switch ($name) {
         case 'daysinmonth':
             $value = $datetime->format('t');
             break;
         case 'dayofweek':
             $value = $datetime->format('N');
             break;
         case 'dayofyear':
             $value = $datetime->format('z');
             break;
         case 'isleapyear':
             $value = (bool) $datetime->format('L');
             break;
         case 'day':
             $value = $datetime->format('d');
             break;
         case 'hour':
             $value = $datetime->format('H');
             break;
         case 'minute':
             $value = $datetime->format('i');
             break;
         case 'second':
             $value = $datetime->format('s');
             break;
         case 'month':
             $value = $datetime->format('m');
             break;
         case 'ordinal':
             $value = $datetime->format('S');
             break;
         case 'week':
             $value = $datetime->format('W');
             break;
         case 'year':
             $value = $datetime->format('Y');
             break;
         default:
             $trace = debug_backtrace();
             trigger_error('Undefined property: ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE);
     }
     return $value;
 }