本文整理汇总了PHP中format_interval函数的典型用法代码示例。如果您正苦于以下问题:PHP format_interval函数的具体用法?PHP format_interval怎么用?PHP format_interval使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了format_interval函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: openfit_base_preprocess_comment
function openfit_base_preprocess_comment(&$variables)
{
$openfit_node_types = array('activity' => TRUE);
if (!isset($variables['node']) || !isset($openfit_node_types[$variables['node']->type])) {
return;
}
$comment = $variables['comment'];
// Remove the standard comment links: reply, edit, delete
unset($variables['content']['links']['comment']['#links']);
// Add a delete menu if the user posted the comment or is admin
global $user;
if (user_access('administer comments') || $user->uid == $comment->uid) {
$url = drupal_get_path_alias('node/' . $variables['node']->nid) . '/comments';
$variables['content']['links']['comment']['#links'] = array('comment-delete' => array('title' => ' ', 'href' => 'comment/' . $comment->cid . '/delete', 'query' => array('destination' => $url), 'html' => TRUE));
}
// Display "XX ago" for posts less than 1 day, otherwise use locale to format datetime
$ago = time() - $comment->created;
if ($ago < 86400) {
$variables['created'] = t('!interval ago', array('!interval' => format_interval(time() - $comment->created)));
} else {
$locale = OpenFitUserSetting::getCurrentUserLocale();
$fmt = new IntlDateFormatter($locale, IntlDateFormatter::SHORT, IntlDateFormatter::SHORT);
$created = new DateTime('now');
$created->setTimestamp($comment->created);
$variables['created'] = $fmt->format($created);
}
$variables['submitted'] = $variables['author'] . ' ' . '<time datetime="' . $variables['datetime'] . '" pubdate="pubdate">' . $variables['created'] . '</time>';
}
示例2: getResultInfo
/**
* Implements \SiteAudit\Check\Abstract\getResultInfo().
*/
public function getResultInfo()
{
if ($this->registry['cron_last']) {
return dt('Cron last ran at @date (@ago ago)', array('@date' => date('r', $this->registry['cron_last']), '@ago' => format_interval(time() - $this->registry['cron_last'])));
}
return dt('Cron has never run.');
}
示例3: hook_cleaner_settings
/**
* Create Cleaner settings form.
*
* @return array
* Form of the cleaner settings page.
*/
function hook_cleaner_settings()
{
// Add CSS to the admin settings page.
drupal_add_css(drupal_get_path('module', 'cleaner') . '/cleaner.css');
$form = array();
$yes_no = array(t('No'), t('Yes'));
$inline = array('class' => array('container-inline'));
$interval = array(0 => t('Every time')) + Cleaner::$intervals;
$form['cleaner_cron'] = array('#type' => 'radios', '#title' => t('Run interval'), '#options' => $interval, '#default_value' => variable_get('cleaner_cron', 3600), '#description' => t('This is how often the options below will occur. The actions will occur on the next Cron run after this interval expires. "Every time" means on every Cron run.'), '#attributes' => $inline);
$form['cleaner_clear_cache'] = array('#type' => 'radios', '#options' => $yes_no, '#title' => t('Clean up cache'), '#default_value' => variable_get('cleaner_clear_cache', 0), '#description' => Cleaner::cleanerGetCacheTablesTable(), '#attributes' => $inline);
$form['cleaner_empty_watchdog'] = array('#type' => 'radios', '#options' => $yes_no, '#title' => t('Clean up Watchdog'), '#default_value' => variable_get('cleaner_empty_watchdog', 0), '#description' => t('There is a standard setting for controlling Watchdog contents. This is more useful for test sites.'), '#attributes' => $inline);
$cookie = session_get_cookie_params();
$select = db_select('sessions', 's')->fields('s', array('timestamp'))->condition('timestamp', REQUEST_TIME - $cookie['lifetime'], '<');
$count = $select->execute()->rowCount();
$form['cleaner_clean_sessions'] = array('#type' => 'radios', '#options' => $yes_no, '#title' => t('Clean up Sessions table'), '#default_value' => variable_get('cleaner_clean_sessions', 0), '#description' => t('The sessions table can quickly become full with old, abandoned sessions. This will delete all sessions older than @interval (as set by your site administrator). There are currently @count such sessions.', array('@interval' => format_interval($cookie['lifetime']), '@count' => $count)), '#attributes' => $inline);
$form['cleaner_clean_cssdir'] = array('#type' => 'radios', '#options' => $yes_no, '#title' => t('Clean up CSS files'), '#default_value' => variable_get('cleaner_clean_cssdir', 0), '#description' => t('The CSS directory can become full with stale and outdated cache files. This will delete all CSS cache files but the latest.'), '#attributes' => $inline);
$form['cleaner_clean_jsdir'] = array('#type' => 'radios', '#options' => $yes_no, '#title' => t('Clean up JS files'), '#default_value' => variable_get('cleaner_clean_jsdir', 0), '#description' => t('The JS directory can become full with stale and outdated cache files. This will delete all JS cache files but the latest.'), '#attributes' => $inline);
// We can only offer OPTIMIZE to MySQL users.
if (db_driver() == 'mysql') {
$form['cleaner_optimize_db'] = array('#type' => 'radios', '#options' => $yes_no + array('2' => 'Local only'), '#title' => t('Optimize tables with "overhead" space'), '#default_value' => variable_get('cleaner_optimize_db', 0), '#description' => t('The module will compress (optimize) all database tables with unused space. <strong>NOTE</strong>: During an optimization, the table will locked against any other activity; on a high vloume site, this may be undesirable. "Local only" means do not replicate the optimization (if it is being done).'), '#attributes' => $inline);
} else {
// If not MySQL, delete(reset) the variable.
variable_del('cleaner_optimize_db');
}
return array('cleaner' => $form);
}
示例4: testUserListing
/**
* Tests the listing.
*/
public function testUserListing()
{
$this->drupalGet('admin/people');
$this->assertResponse(403, 'Anonymous user does not have access to the user admin listing.');
// Create a bunch of users.
$accounts = array();
for ($i = 0; $i < 3; $i++) {
$account = $this->drupalCreateUser();
$accounts[$account->label()] = $account;
}
// Create a blocked user.
$account = $this->drupalCreateUser();
$account->block();
$account->save();
$accounts[$account->label()] = $account;
// Create a user at a certain timestamp.
$account = $this->drupalCreateUser();
$account->created = 1363219200;
$account->save();
$accounts[$account->label()] = $account;
$timestamp_user = $account->label();
$rid_1 = $this->drupalCreateRole(array(), 'custom_role_1', 'custom_role_1');
$rid_2 = $this->drupalCreateRole(array(), 'custom_role_2', 'custom_role_2');
$account = $this->drupalCreateUser();
$account->addRole($rid_1);
$account->addRole($rid_2);
$account->save();
$accounts[$account->label()] = $account;
$role_account_name = $account->label();
// Create an admin user and look at the listing.
$admin_user = $this->drupalCreateUser(array('administer users'));
$accounts[$admin_user->label()] = $admin_user;
$accounts['admin'] = entity_load('user', 1);
$this->drupalLogin($admin_user);
$this->drupalGet('admin/people');
$this->assertResponse(200, 'The admin user has access to the user admin listing.');
$result = $this->xpath('//table[contains(@class, "responsive-enabled")]/tbody/tr');
$result_accounts = array();
foreach ($result as $account) {
$name = (string) $account->td[0]->span;
$roles = array();
if (isset($account->td[2]->div->ul)) {
foreach ($account->td[2]->div->ul->li as $element) {
$roles[] = (string) $element;
}
}
$result_accounts[$name] = array('name' => $name, 'status' => (string) $account->td[1], 'roles' => $roles, 'member_for' => (string) $account->td[3]);
}
$this->assertFalse(array_diff(array_keys($result_accounts), array_keys($accounts)), 'Ensure all accounts are listed.');
foreach ($result_accounts as $name => $values) {
$this->assertEqual($values['status'] == t('active'), $accounts[$name]->status->value, 'Ensure the status is displayed properly.');
}
$expected_roles = array('custom_role_1', 'custom_role_2');
$this->assertEqual($result_accounts[$role_account_name]['roles'], $expected_roles, 'Ensure roles are listed properly.');
$this->assertEqual($result_accounts[$timestamp_user]['member_for'], format_interval(REQUEST_TIME - $accounts[$timestamp_user]->created->value), 'Ensure the right member time is displayed.');
}
示例5: adminlte_preprocess_page
/**
* Implement hook_preprocess_page()
*/
function adminlte_preprocess_page(&$vars, $hook)
{
global $user;
global $base_url;
$vars['front_page'] = $base_url;
$theme_path = drupal_get_path('theme', 'adminlte');
// Fontawesome 4.5.0
drupal_add_css('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css', array('type' => 'external', 'scope' => 'header'));
// Ionicons 2.0.1
drupal_add_css('https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css', array('type' => 'external', 'scope' => 'header'));
// jQuery 2.2.3
drupal_add_js($theme_path . '/plugins/jQuery/jQuery-2.2.3.min.js', array('type' => 'file', 'scope' => 'footer'));
// Bootstrap 3.3.5
drupal_add_js($theme_path . '/bootstrap/js/bootstrap.min.js', array('type' => 'file', 'scope' => 'footer'));
// jQuery UI
drupal_add_js('https://code.jquery.com/ui/1.11.4/jquery-ui.min.js', array('type' => 'external', 'scope' => 'footer'));
// FastClick
drupal_add_js($theme_path . '/plugins/fastclick/fastclick.min.js', array('type' => 'file', 'scope' => 'footer'));
// AdminLTE App
drupal_add_js($theme_path . '/dist/js/app.min.js', array('type' => 'file', 'scope' => 'footer'));
// Moment
drupal_add_js('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.2/moment.min.js', array('type' => 'external', 'scope' => 'footer'));
// Fullcalendar
drupal_add_js($theme_path . '/plugins/fullcalendar/fullcalendar.min.js', array('type' => 'file', 'scope' => 'footer'));
// Additional js for theme.
drupal_add_js($theme_path . '/assets/js/script.js', array('type' => 'file', 'scope' => 'footer'));
$vars['logout'] = '/user/logout';
$vars['profile'] = 'user/' . $user->uid;
$roles = end($user->roles);
$vars['role'] = ucfirst($roles);
reset($user->roles);
// Check if user is login
if (user_is_logged_in()) {
$account = user_load($user->uid);
$avatar_uri = drupal_get_path('theme', 'adminlte') . '/img/avatar.png';
$alt = t("@user's picture", array('@user' => format_username($user)));
// Display profile picture.
if (!empty($account->picture)) {
$user_picture = theme('image_style', array('style_name' => 'thumbnail', 'path' => $account->picture->uri, 'alt' => $alt, 'title' => $alt, 'attributes' => array('class' => 'img-circle')));
$user_picture_m = theme('image_style', array('style_name' => 'thumbnail', 'path' => $account->picture->uri, 'alt' => $alt, 'title' => $alt, 'attributes' => array('class' => 'user-image')));
} else {
$user_picture_config = array('style_name' => 'thumbnail', 'path' => $avatar_uri, 'alt' => $alt, 'title' => $alt, 'attributes' => array('class' => 'img-circle'));
$user_picture_m_config = array('style_name' => 'thumbnail', 'path' => $avatar_uri, 'alt' => $alt, 'title' => $alt, 'attributes' => array('class' => 'user-image'));
$user_picture = adminlte_image_style($user_picture_config);
$user_picture_m = adminlte_image_style($user_picture_m_config);
}
// Assign profile picture in variables.
$vars['avatar'] = $user_picture;
$vars['avatarsm'] = $user_picture_m;
// Display history of member.
$vars['history'] = 'Member for ' . format_interval(time() - $user->created);
// Display username or you can change this to set the fullname of user login.
$vars['fullname'] = $account->name;
}
}
示例6: buildForm
/**
* {@inheritdoc}
*/
public function buildForm(array $form, array &$form_state)
{
$config = $this->config('system.cron');
$form['description'] = array('#markup' => '<p>' . t('Cron takes care of running periodic tasks like checking for updates and indexing content for search.') . '</p>');
$form['run'] = array('#type' => 'submit', '#value' => t('Run cron'), '#submit' => array(array($this, 'submitCron')));
$status = '<p>' . t('Last run: %cron-last ago.', array('%cron-last' => format_interval(REQUEST_TIME - $this->state->get('system.cron_last')))) . '</p>';
$form['status'] = array('#markup' => $status);
$form['cron_url'] = array('#markup' => '<p>' . t('To run cron from outside the site, go to <a href="!cron">!cron</a>', array('!cron' => url('cron/' . $this->state->get('system.cron_key'), array('absolute' => TRUE)))) . '</p>');
$form['cron'] = array('#title' => t('Cron settings'), '#type' => 'details', '#open' => TRUE);
$options = array(3600, 10800, 21600, 43200, 86400, 604800);
$form['cron']['cron_safe_threshold'] = array('#type' => 'select', '#title' => t('Run cron every'), '#description' => t('More information about setting up scheduled tasks can be found by <a href="@url">reading the cron tutorial on drupal.org</a>.', array('@url' => url('http://drupal.org/cron'))), '#default_value' => $config->get('threshold.autorun'), '#options' => array(0 => t('Never')) + array_map('format_interval', array_combine($options, $options)));
return parent::buildForm($form, $form_state);
}
示例7: testFieldDate
public function testFieldDate()
{
$view = Views::getView('test_view');
$view->setDisplay();
$view->displayHandlers->get('default')->overrideOption('fields', array('created' => array('id' => 'created', 'table' => 'views_test_data', 'field' => 'created', 'relationship' => 'none', 'custom_date_format' => 'c')));
$time = gmmktime(0, 0, 0, 1, 1, 2000);
$this->executeView($view);
$timezones = array(NULL, 'UTC', 'America/New_York');
foreach ($timezones as $timezone) {
$dates = array('short' => format_date($time, 'short', '', $timezone), 'medium' => format_date($time, 'medium', '', $timezone), 'long' => format_date($time, 'long', '', $timezone), 'custom' => format_date($time, 'custom', 'c', $timezone));
$this->assertRenderedDatesEqual($view, $dates, $timezone);
}
$intervals = array('raw time ago' => format_interval(REQUEST_TIME - $time, 2), 'time ago' => t('%time ago', array('%time' => format_interval(REQUEST_TIME - $time, 2))));
$this->assertRenderedDatesEqual($view, $intervals);
}
示例8: neb_comment_block
function neb_comment_block()
{
$items = array();
$number = variable_get('comment_block_count', 10);
foreach (comment_get_recent($number) as $comment) {
//kpr($comment->changed);
//print date('Y-m-d H:i', $comment->changed);
$items[] = '<h3>' . l($comment->subject, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)) . '</h3>' . ' <time datetime="' . date('Y-m-d H:i', $comment->changed) . '">' . t('@time ago', array('@time' => format_interval(REQUEST_TIME - $comment->changed))) . '</time>';
}
if ($items) {
return theme('item_list', array('items' => $items, 'daddy' => 'comments'));
} else {
return t('No comments available.');
}
}
示例9: skype_history
function skype_history($threshold = 60, $since = "Last Monday")
{
$calls = SkypeHistory_Call::getCalls();
$since = strtotime($since);
$table = new Console_Table();
$table->setHeaders(array('Date', 'Time', 'Duration', '<>', 'Participants'));
$types = array('INCOMING_PSTN' => '<-', 'INCOMING_P2P' => '<-', 'OUTGOING_PSTN' => '->', 'OUTGOING_P2P' => '->');
$previous_date = NULL;
$total_duration = 0;
printf("Gathering skype call history, this may take a few seconds.\n");
foreach ($calls as $i => $id) {
$call = new SkypeHistory_Call($id);
// Bail out once the cutoff is reached.
if ($call->timestamp < $since) {
break;
}
if ($call->duration < $threshold) {
continue;
}
$participants = array();
$participants[] = $call->PARTNER_DISPNAME;
if ($call->conf_participants_count > 1) {
for ($j = 1; $j < (int) $call->conf_participants_count; $j++) {
$p = $call->getProperty("CONF_PARTICIPANT {$j}");
// drewstephens0815 OUTGOING_P2P FINISHED Andrew Stephens
list($nick, $type, $status, $display_name) = explode(" ", $p, 4);
$participants[] = $display_name;
}
}
$date = date('D M d,Y', (int) $call->timestamp);
if ($date == $previous_date) {
$date = '';
} else {
if (!empty($previous_date)) {
$table->addSeparator();
}
$previous_date = $date;
}
$total_duration += (int) $call->duration;
$table->addRow(array($date, date('g:ia', (int) $call->timestamp), format_interval($call->duration), $types[$call->type], format_participants($participants)));
printf("\r%s", str_repeat('.', $i));
}
printf("\r");
print $table->getTable();
printf("Number of calls: %s\n", count($calls));
printf("Total duration: %s\n", format_interval($total_duration));
}
示例10: worksafe_theme_status_time_link
function worksafe_theme_status_time_link($status, $is_link = true)
{
$time = strtotime($status->created_at);
if ($time > 0) {
if (twitter_date('dmy') == twitter_date('dmy', $time)) {
$out = format_interval(time() - $time, 1) . ' ago';
} else {
$out = twitter_date('H:i', $time);
}
} else {
$out = $status->created_at;
}
if ($is_link) {
$out = "<a href='status/{$status->id}'>{$out}</a>";
}
return $out;
}
示例11: formatInterval
public function formatInterval($date, $now = null)
{
$timestamp = $this->dateToTimestamp($date);
if (null === $timestamp) {
return '';
// I'm really sorry I'm not Mme Irma
}
if (null === $now) {
$referenceTimestamp = time();
} else {
$referenceTimestamp = $this->dateToTimestamp($now);
if (null === $referenceTimestamp) {
return '';
// Still not Mme Irma
}
}
return format_interval($referenceTimestamp - $timestamp);
}
示例12: rhok_twitter_block_tweets
/**
* Returns themed html for individual tweets
*/
function rhok_twitter_block_tweets($tweet_object, $variables = array())
{
$tweet = get_object_vars($tweet_object['tweet']);
$tweet['text'] = twitter_block_linkify($tweet['text']);
$tweet['time_ago'] = format_interval(time() - strtotime($tweet['created_at']));
$html = <<<EOHTML
<div class="twitter_block tweet">
<div class="tweet_text"><p class="tweet">{$tweet['text']}</p></div>
<div class="twitter_block_user">
<a class="twitter_block profile_image" href="http://twitter.com/{$tweet['from_user']}">
<span class="twitter_block_user_name">@{$tweet['from_user']}</span>
</a>
<span class="twitter_block_time_ago">{$tweet['time_ago']}</span>
</div>
</div>
EOHTML;
return $html;
}
示例13: apigee_base_preprocess_node
/**
* Preprocess variables for node.tpl.php
*
* @see node.tpl.php
*/
function apigee_base_preprocess_node(&$variables)
{
if ($variables['teaser']) {
$variables['classes_array'][] = 'row-fluid';
}
$author = $variables['name'];
$time_ago_short = format_interval(time() - $variables['created'], 1) . t(' ago');
$time_ago_long = format_interval(time() - $variables['created'], 2) . t(' ago');
// Add some date variables
if ($variables['type'] = 'blog') {
if ($variables['uid'] != 0) {
$variables['posted'] = 'Posted by ' . $author . ' | about ' . $time_ago_short;
} else {
$variables['posted'] = 'Posted ' . $time_ago_short;
}
$variables['submitted_day'] = format_date($variables['node']->created, 'custom', 'j');
$variables['submitted_month'] = format_date($variables['node']->created, 'custom', 'M');
}
if ($variables['type'] == 'forum') {
$variables['submitted'] = 'Topic created by: ' . $author . ' ' . $time_ago_long;
}
}
示例14: nesi_bootstrap_menu_tree__user_menu
function nesi_bootstrap_menu_tree__user_menu($variables)
{
global $base_url;
global $user;
$user_data = user_load($user->uid);
$profile_data = profile2_load_by_user($user_data->uid);
$admin_links = '';
if (user_access('nesi website config')) {
$admin_links .= '<li><a href="' . $base_url . '/nesi-config">Administration Dashboard</a></li>';
}
$output = '';
$output .= '<ul id="nesi-user-profile-dropdown" class="dropdown-menu pull-right">';
$output .= '<li id="nesi-user-picture"><div class="nesi-user-picture"><div class="pull-left">' . theme('user_picture', array('account' => $user)) . '</div>
<h2>' . format_username($user_data) . '</h2>
<h3>Institution</h3>
<p>' . $profile_data['researcher_profile']->field_user_institution[LANGUAGE_NONE][0]['value'] . '</p>
<p><em>Member for ' . format_interval(REQUEST_TIME - $user_data->created) . '</em></p>
</div></li>';
$output .= $admin_links;
$output .= $variables['tree'];
$output .= '<li id="nesi-base-actions"><ul class="nav nav-pills nesi-base-actions"><li class="pull-left"><a href="' . $base_url . '/user">Profile</a></li><li class="pull-right"><a href="/user/logout">Log out</a></li></ul></li>';
$output .= '</ul>';
return $output;
}
示例15: formatLabel
/**
* Label for schedule.
*/
public function formatLabel($job)
{
$settings = $job->getSettings($this->type);
return t('Every @interval', array('@interval' => format_interval($this->presets[$settings['rules'][0]])));
}