当前位置: 首页>>代码示例>>PHP>>正文


PHP rcube_utils::strtotime方法代码示例

本文整理汇总了PHP中rcube_utils::strtotime方法的典型用法代码示例。如果您正苦于以下问题:PHP rcube_utils::strtotime方法的具体用法?PHP rcube_utils::strtotime怎么用?PHP rcube_utils::strtotime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在rcube_utils的用法示例。


在下文中一共展示了rcube_utils::strtotime方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: date_format

 /**
  * Converts date string/object into IMAP date/time format
  */
 protected function date_format($date)
 {
     if (empty($date)) {
         return null;
     }
     if (!is_object($date) || !is_a($date, 'DateTime')) {
         try {
             $timestamp = rcube_utils::strtotime($date);
             $date = new DateTime("@" . $timestamp);
         } catch (Exception $e) {
             return null;
         }
     }
     return $date->format('d-M-Y H:i:s O');
 }
开发者ID:ehabqino,项目名称:roundcubemail,代码行数:18,代码来源:rcube_imap.php

示例2: format_date

 /**
  * Convert the given date to a human readable form
  * This uses the date formatting properties from config
  *
  * @param mixed  Date representation (string, timestamp or DateTime object)
  * @param string Date format to use
  * @param bool   Enables date convertion according to user timezone
  *
  * @return string Formatted date string
  */
 public function format_date($date, $format = null, $convert = true)
 {
     if (is_object($date) && is_a($date, 'DateTime')) {
         $timestamp = $date->format('U');
     } else {
         if (!empty($date)) {
             $timestamp = rcube_utils::strtotime($date);
         }
         if (empty($timestamp)) {
             return '';
         }
         try {
             $date = new DateTime("@" . $timestamp);
         } catch (Exception $e) {
             return '';
         }
     }
     if ($convert) {
         try {
             // convert to the right timezone
             $stz = date_default_timezone_get();
             $tz = new DateTimeZone($this->config->get('timezone'));
             $date->setTimezone($tz);
             date_default_timezone_set($tz->getName());
             $timestamp = $date->format('U');
         } catch (Exception $e) {
         }
     }
     // define date format depending on current time
     if (!$format) {
         $now = time();
         $now_date = getdate($now);
         $today_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday'], $now_date['year']);
         $week_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday'] - 6, $now_date['year']);
         $pretty_date = $this->config->get('prettydate');
         if ($pretty_date && $timestamp > $today_limit && $timestamp <= $now) {
             $format = $this->config->get('date_today', $this->config->get('time_format', 'H:i'));
             $today = true;
         } else {
             if ($pretty_date && $timestamp > $week_limit && $timestamp <= $now) {
                 $format = $this->config->get('date_short', 'D H:i');
             } else {
                 $format = $this->config->get('date_long', 'Y-m-d H:i');
             }
         }
     }
     // strftime() format
     if (preg_match('/%[a-z]+/i', $format)) {
         $format = strftime($format, $timestamp);
         if ($stz) {
             date_default_timezone_set($stz);
         }
         return $today ? $this->gettext('today') . ' ' . $format : $format;
     }
     // parse format string manually in order to provide localized weekday and month names
     // an alternative would be to convert the date() format string to fit with strftime()
     $out = '';
     for ($i = 0; $i < strlen($format); $i++) {
         if ($format[$i] == "\\") {
             // skip escape chars
             continue;
         }
         // write char "as-is"
         if ($format[$i] == ' ' || $format[$i - 1] == "\\") {
             $out .= $format[$i];
         } else {
             if ($format[$i] == 'D') {
                 $out .= $this->gettext(strtolower(date('D', $timestamp)));
             } else {
                 if ($format[$i] == 'l') {
                     $out .= $this->gettext(strtolower(date('l', $timestamp)));
                 } else {
                     if ($format[$i] == 'M') {
                         $out .= $this->gettext(strtolower(date('M', $timestamp)));
                     } else {
                         if ($format[$i] == 'F') {
                             $out .= $this->gettext('long' . strtolower(date('M', $timestamp)));
                         } else {
                             if ($format[$i] == 'x') {
                                 $out .= strftime('%x %X', $timestamp);
                             } else {
                                 $out .= date($format[$i], $timestamp);
                             }
                         }
                     }
                 }
             }
         }
     }
     if ($today) {
//.........这里部分代码省略.........
开发者ID:peknur,项目名称:roundcubemail,代码行数:101,代码来源:rcmail.php

示例3: test_strtotime

 /**
  * rcube:utils::strtotime()
  */
 function test_strtotime()
 {
     // this test depends on system timezone if not set
     date_default_timezone_set('UTC');
     $test = array('1' => 1, '' => 0, 'abc-555' => 0, '2013-04-22' => 1366588800, '2013/04/22' => 1366588800, '2013.04.22' => 1366588800, '22-04-2013' => 1366588800, '22/04/2013' => 1366588800, '22.04.2013' => 1366588800, '22.4.2013' => 1366588800, '20130422' => 1366588800, '2013/06/21 12:00:00 UTC' => 1371816000, '2013/06/21 12:00:00 Europe/Berlin' => 1371808800);
     foreach ($test as $datetime => $ts) {
         $result = rcube_utils::strtotime($datetime);
         $this->assertSame($ts, $result, "Error parsing date: {$datetime}");
     }
 }
开发者ID:NathanAUS,项目名称:roundcubemail,代码行数:13,代码来源:Utils.php

示例4: set

 /**
  * Setter for address record fields
  *
  * @param string Field name
  * @param string Field value
  * @param string Type/section name
  */
 public function set($field, $value, $type = 'HOME')
 {
     $field = strtolower($field);
     $type_uc = strtoupper($type);
     switch ($field) {
         case 'name':
         case 'displayname':
             $this->raw['FN'][0][0] = $this->displayname = $value;
             break;
         case 'surname':
             $this->raw['N'][0][0] = $this->surname = $value;
             break;
         case 'firstname':
             $this->raw['N'][0][1] = $this->firstname = $value;
             break;
         case 'middlename':
             $this->raw['N'][0][2] = $this->middlename = $value;
             break;
         case 'prefix':
             $this->raw['N'][0][3] = $value;
             break;
         case 'suffix':
             $this->raw['N'][0][4] = $value;
             break;
         case 'nickname':
             $this->raw['NICKNAME'][0][0] = $this->nickname = $value;
             break;
         case 'organization':
             $this->raw['ORG'][0][0] = $this->organization = $value;
             break;
         case 'photo':
             if (strpos($value, 'http:') === 0) {
                 // TODO: fetch file from URL and save it locally?
                 $this->raw['PHOTO'][0] = array(0 => $value, 'url' => true);
             } else {
                 $this->raw['PHOTO'][0] = array(0 => $value, 'base64' => (bool) preg_match('![^a-z0-9/=+-]!i', $value));
             }
             break;
         case 'email':
             $this->raw['EMAIL'][] = array(0 => $value, 'type' => array_filter(array('INTERNET', $type_uc)));
             $this->email[] = $value;
             break;
         case 'im':
             // save IM subtypes into extension fields
             $typemap = array_flip($this->immap);
             if ($field = $typemap[strtolower($type)]) {
                 $this->raw[$field][] = array(0 => $value);
             }
             break;
         case 'birthday':
         case 'anniversary':
             if (($val = rcube_utils::strtotime($value)) && ($fn = self::$fieldmap[$field])) {
                 $this->raw[$fn][] = array(0 => date('Y-m-d', $val), 'value' => array('date'));
             }
             break;
         case 'address':
             if ($this->addresstypemap[$type_uc]) {
                 $type = $this->addresstypemap[$type_uc];
             }
             $value = $value[0] ? $value : array('', '', $value['street'], $value['locality'], $value['region'], $value['zipcode'], $value['country']);
             // fall through if not empty
             if (!strlen(join('', $value))) {
                 break;
             }
         default:
             if ($field == 'phone' && $this->phonetypemap[$type_uc]) {
                 $type = $this->phonetypemap[$type_uc];
             }
             if (($tag = self::$fieldmap[$field]) && (is_array($value) || strlen($value))) {
                 $index = count($this->raw[$tag]);
                 $this->raw[$tag][$index] = (array) $value;
                 if ($type) {
                     $typemap = array_flip($this->typemap);
                     $this->raw[$tag][$index]['type'] = explode(',', $typemap[$type_uc] ? $typemap[$type_uc] : $type);
                 }
             }
             break;
     }
 }
开发者ID:rootsdigital,项目名称:roundcubemail,代码行数:86,代码来源:rcube_vcard.php

示例5: rcube_strtotime

function rcube_strtotime($date)
{
    return rcube_utils::strtotime($date);
}
开发者ID:noikiy,项目名称:roundcubemail,代码行数:4,代码来源:bc.php

示例6: test_strtotime

 /**
  * rcube:utils::strtotime()
  */
 function test_strtotime()
 {
     $test = array('1' => 1, '' => 0, '2013-04-22' => 1366581600, '2013/04/22' => 1366581600, '2013.04.22' => 1366581600, '22-04-2013' => 1366581600, '22/04/2013' => 1366581600, '22.04.2013' => 1366581600, '22.4.2013' => 1366581600, '20130422' => 1366581600);
     foreach ($test as $datetime => $ts) {
         $result = rcube_utils::strtotime($datetime);
         $this->assertSame($ts, $result, "Error parsing date: {$datetime}");
     }
 }
开发者ID:rasky,项目名称:roundcubemail,代码行数:11,代码来源:Utils.php

示例7: sortHeaders

 /**
  * Sort messages by specified header field
  *
  * @param array  $messages Array of rcube_message_header objects
  * @param string $field    Name of the property to sort by
  * @param string $flag     Sorting order (ASC|DESC)
  *
  * @return array Sorted input array
  */
 public static function sortHeaders($messages, $field, $flag)
 {
     // Strategy: First, we'll create an "index" array.
     // Then, we'll use sort() on that array, and use that to sort the main array.
     $field = empty($field) ? 'uid' : strtolower($field);
     $flag = empty($flag) ? 'ASC' : strtoupper($flag);
     $index = array();
     $result = array();
     reset($messages);
     while (list($key, $headers) = each($messages)) {
         $value = null;
         switch ($field) {
             case 'arrival':
                 $field = 'internaldate';
             case 'date':
             case 'internaldate':
             case 'timestamp':
                 $value = rcube_utils::strtotime($headers->{$field});
                 if (!$value && $field != 'timestamp') {
                     $value = $headers->timestamp;
                 }
                 break;
             default:
                 // @TODO: decode header value, convert to UTF-8
                 $value = $headers->{$field};
                 if (is_string($value)) {
                     $value = str_replace('"', '', $value);
                     if ($field == 'subject') {
                         $value = preg_replace('/^(Re:\\s*|Fwd:\\s*|Fw:\\s*)+/i', '', $value);
                     }
                     $data = strtoupper($value);
                 }
         }
         $index[$key] = $value;
     }
     if (!empty($index)) {
         // sort index
         if ($flag == 'ASC') {
             asort($index);
         } else {
             arsort($index);
         }
         // form new array based on index
         while (list($key, $val) = each($index)) {
             $result[$key] = $messages[$key];
         }
     }
     return $result;
 }
开发者ID:jimjag,项目名称:roundcubemail,代码行数:58,代码来源:rcube_imap_generic.php

示例8: compare_search_value

 /**
  * Compare search value with contact data
  *
  * @param string       $colname Data name
  * @param string|array $value   Data value
  * @param string       $search  Search value
  * @param int          $mode    Search mode
  *
  * @return bool Comparision result
  */
 protected function compare_search_value($colname, $value, $search, $mode)
 {
     // The value is a date string, for date we'll
     // use only strict comparison (mode = 1)
     // @TODO: partial search, e.g. match only day and month
     if (in_array($colname, $this->date_cols)) {
         return ($value = rcube_utils::strtotime($value)) && ($search = rcube_utils::strtotime($search)) && date('Ymd', $value) == date('Ymd', $search);
     }
     // composite field, e.g. address
     foreach ((array) $value as $val) {
         $val = mb_strtolower($val);
         switch ($mode) {
             case 1:
                 $got = $val == $search;
                 break;
             case 2:
                 $got = $search == substr($val, 0, strlen($search));
                 break;
             default:
                 $got = strpos($val, $search) !== false;
         }
         if ($got) {
             return true;
         }
     }
     return false;
 }
开发者ID:CDN-Sparks,项目名称:owncloud,代码行数:37,代码来源:rcube_addressbook.php

示例9: rcube_strtotime

function rcube_strtotime($date)
{
    _deprecation_warning(__FUNCTION__);
    return rcube_utils::strtotime($date);
}
开发者ID:JotapePinheiro,项目名称:roundcubemail,代码行数:5,代码来源:bc.php


注:本文中的rcube_utils::strtotime方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。