/**
  * Returns a date in the format used by MS-DOS.
  *
  * @see     http://www.vsft.com/hal/dostime.htm
  * @param   util.Date date
  * @return  int
  */
 protected function dosDate(Date $date)
 {
     return (($date->getYear() - 1980 & 0x7f) << 4 | $date->getMonth() & 0xf) << 5 | $date->getDay() & 0x1f;
 }
Example #2
0
 /**
  * Formats a 
  *
  * @param   util.Date d
  * @return  string
  */
 public function format(Date $d)
 {
     $out = '';
     foreach ($this->format as $token) {
         switch ($token) {
             case '%Y':
                 $out .= $d->getYear();
                 break;
             case '%m':
                 $out .= str_pad($d->getMonth(), 2, '0', STR_PAD_LEFT);
                 break;
             case '%d':
                 $out .= str_pad($d->getDay(), 2, '0', STR_PAD_LEFT);
                 break;
             case '%H':
                 $out .= str_pad($d->getHours(), 2, '0', STR_PAD_LEFT);
                 break;
             case '%M':
                 $out .= str_pad($d->getMinutes(), 2, '0', STR_PAD_LEFT);
                 break;
             case '%S':
                 $out .= str_pad($d->getSeconds(), 2, '0', STR_PAD_LEFT);
                 break;
             case '%p':
                 $h = $d->getHours();
                 $out .= $h >= 12 ? 'PM' : 'AM';
                 break;
             case '%I':
                 $out .= str_pad($d->getHours() % 12, 2, '0', STR_PAD_LEFT);
                 break;
             case '%z':
                 $out .= $d->getTimeZone()->getName();
                 break;
             case '%Z':
                 $out .= $d->getOffset();
                 break;
             case is_array($token):
                 $out .= $token[1][call_user_func([$d, 'get' . $token[0]]) - 1];
                 break;
             default:
                 $out .= $token;
         }
     }
     return $out;
 }