PHP版实现友好的时间显示方式(例如:2小时前)

WBOY
Freigeben: 2016-07-25 09:10:59
Original
1222 Leute haben es durchsucht

完整php类,通常我会配合smary使用,快捷使用 (plugins/function.rdate.php)

  1. /*
  2. * Data time functions.
  3. // * 模块
  4. */
  5. defined('TSKY') || die('Permission Denied!');
  6. function fmtMonth($month){
  7. return date('F, Y',day2time($month.'01'));
  8. }
  9. //
  10. function fmt_month($ts) {
  11. return strftime("%b,%Y",$ts);
  12. }
  13. // 03:02
  14. function shartTime($ts) {
  15. return strftime("%H:%M",$ts);
  16. }
  17. // 03:02:01
  18. function longTime($ts) {
  19. return strftime("%T",$ts);
  20. }
  21. //4月18日
  22. function shortDate($ts) {
  23. return date("n月d日",$ts);
  24. }
  25. //2006年4月18日
  26. function longDate($ts) {
  27. return date("Y年n月d日",$ts);
  28. }
  29. function dateTime($ts) {
  30. return date("Y年n月d日 H:i:s",$ts);
  31. }
  32. function fullDateTime($ts) {
  33. return date("Y年n月d日 ",$ts).week($ts);
  34. }
  35. function week($ts) {
  36. global $lang;
  37. return $lang['weekDay'][date('w',$ts)];
  38. }
  39. function relatively_date($date) {
  40. if (!preg_match('/^\d+$/', $date)) $date = strtotime(trim($date));
  41. $sec = time() - $date;
  42. switch(true){
  43. case $sec return round($sec/60). ' 分钟前';
  44. case $sec return round($sec/3600). ' 小时前';
  45. case $sec return round($sec/86400). ' 天前';//days ago
  46. case $sec return round($sec/(86400*7)). ' 周前'; //weeks ago
  47. default:
  48. return longDate($date);
  49. }
  50. }
  51. function nextMonth($month/*200512->200601*/){
  52. return date('Ym',strtotime('+1 month',strtotime($month.'01')));
  53. }
  54. function prevMonth($month/*200512->200511*/){
  55. return date('Ym',strtotime('-1 month',strtotime($month.'01')));
  56. }
  57. function prevDay($day/*20050826*/){
  58. $day = substr($day,0,8);
  59. return date('Ymd',strtotime('-1 day',strtotime($day)));
  60. }
  61. function nextDay($day/*20050826*/){
  62. $day = substr($day,0,8);
  63. return date('Ymd',strtotime('+1 day',strtotime($day)));
  64. }
  65. function nextExistsDay($day/*20050109*/){
  66. $day = nextDay($day);
  67. while(!hasTopic($day) && $day $day = nextDay($day);
  68. }
  69. return hasTopic($day) ? $day : false;
  70. }
  71. function prevExistsDay($day/*20050109*/){
  72. global $cfg;
  73. $day = prevDay($day);
  74. while(!hasTopic($day) && (int)$day > $cfg->origDate){
  75. $day = prevDay($day);
  76. }
  77. return hasTopic($day) ? $day : false;
  78. }
  79. function prev_day($day){$day = substr($day,0,8);return date('Ymd',strtotime('-1 day',strtotime($day)));}
  80. function long_date($ts){return date("Y年n月d日",$ts);}
  81. function day2time($day){return @strtotime($day);}
  82. /*
  83. echo "
    ";
    Nach dem Login kopieren
  84. echo strftime("a%a\n"); // a 星期二
  85. echo strftime("A%A\n"); // A 星期二
  86. echo strftime("b%b\n"); // b 四月
  87. echo strftime("B%B\n"); // B 四月
  88. echo strftime("c%c\n"); // c 2006-4-18 3:48:11
  89. echo strftime("C%C\n"); // C
  90. echo strftime("d%d\n"); // d 18
  91. echo strftime("D%D\n"); // D
  92. echo strftime("e%e\n"); // e
  93. echo strftime("g%g\n"); // g
  94. echo strftime("G%G\n"); // G
  95. echo strftime("h%h\n"); // h
  96. echo strftime("H%H\n"); // H 03
  97. echo strftime("I%I\n"); // I 03
  98. echo strftime("j%j\n"); // j 108
  99. echo strftime("m%m\n"); // m 04
  100. echo strftime("M%M\n"); // M 48
  101. echo strftime("n%n\n"); // n
  102. echo strftime("p%p\n"); // p 上午
  103. echo strftime("r%r\n"); // r
  104. echo strftime("R%R\n"); // R
  105. echo strftime("S%S\n"); // S 11
  106. echo strftime("t%t\n"); // t
  107. echo strftime("T%T\n"); // T
  108. echo strftime("u%u\n"); // u
  109. echo strftime("U%U\n"); // U 16
  110. echo strftime("V%V\n"); // V
  111. echo strftime("W%W\n"); // W 16
  112. echo strftime("w%w\n"); // w 2
  113. echo strftime("x%x\n"); // x 2006-4-18
  114. echo strftime("X%X\n"); // X 3:48:11
  115. echo strftime("y%y\n"); // y 06
  116. echo strftime("Y%Y\n"); // Y 2006
  117. echo strftime("Z%Z\n"); // Z 中国标准时间
  118. echo strftime("%%%\n"); // %
  119. */
复制代码
  1. function smarty_function_rdate($params, &$smarty){
  2. if (!isset($params['T'])){
  3. $smarty->trigger_error("rdate: missing 'T' parameter");
  4. return;
  5. }
  6. $date = $params['T'];
  7. if (!preg_match('/^\d+$/', $date)) $date = strtotime(trim($date));
  8. $sec = time() - $date;
  9. switch(true){
  10. case $sec return round($sec/60). ' 分钟前';
  11. case $sec return round($sec/3600). ' 小时前';
  12. case $sec return round($sec/86400). ' 天前';//days ago
  13. case $sec return round($sec/(86400*7)). ' 周前'; //weeks ago
  14. default:
  15. return date("Y年n月d日",$date);
  16. }
  17. }
  18. ?>
复制代码


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage