php语言 百分网手机站

php实现求相对时间函数

时间:2020-08-05 14:56:13 php语言 我要投稿

php实现求相对时间函数

  文章主要介绍了php实现求相对时间函数,可实现简单求相对时间为几分钟前或几小时前的功能,非常简单实用,需要的朋友可以参考下。

php实现求相对时间函数

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  <?php

  function relativeTime($time = false, $limit = 86400, $format = 'g:i A M jS') {

  if (empty($time) || (!is_string($time) & amp; & amp;

  !is_numeric($time))) $time = time();

  elseif (is_string($time)) $time = strtotime($time);

  $now = time();

  $relative = '';

  if ($time === $now) $relative = 'now';

  elseif ($time > $now) $relative = 'in the future';

  else {

  $diff = $now - $time;

  if ($diff >= $limit) $relative = date($format, $time);

  elseif ($diff < 60) {

  $relative = 'less than one minute ago';

  } elseif (($minutes = ceil($diff / 60)) < 60) {

  $relative = $minutes . ' minute' . (((int)$minutes === 1) ? '' : 's') . ' ago';

  } else {

  $hours = ceil($diff / 3600);

  $relative = 'about ' . $hours . ' hour' . (((int)$hours === 1) ? '' : 's') . ' ago';

  }

  }

  return $relative;

  }

  希望本文所述对大家的'php程序设计有所帮助。

  【拓展阅读】

  php时间函数用法分析

  例 1. 用 microtime() 对脚本的运行计时

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  <?php

  /**

  * Simple function to replicate PHP 5 behaviour

  */

  function microtime_float()

  {

  list($usec, $sec) = explode(" ", microtime());

  return ((float)$usec + (float)$sec);

  }

  $time_start = microtime_float();

  // Sleep for a while

  usleep(100);

  $time_end = microtime_float();

  $time = $time_end - $time_start;

  echo "Did nothing in $time seconds/n";

  ?>

  mktime()取得一个日期的 Unix 时间戳

  int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

  参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值

  date()格式化一个本地时间/日期

  string date ( string format [, int timestamp] )

  提示: 自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳。

  strtotime -- 将任何英文文本的日期时间描述解析为 Unix 时间戳

  ?

  1

  2

  echo strtotime("+1 day"), "/n";

  echo strtotime("+1 week"), "/n";

  例2. 某个时间的后一天,后一月

  ?

  1

  2

  3

  strtotime("+1 day ".$day);

  strtotime("2008-01-31 +1 month");

  strtotime($day." +1 day");