• php实现Facebook风格的 time ago函数


    php实现Facebook风格的 time ago函数

    非常好用,只要把里面的英文替换成中文就行了

    英文函数代码如下:

     1 <?php
     2 function nicetime($date)
     3 {
     4     if(empty($date)) {
     5         return "No date provided";
     6     }
     7   
     8     $periods         = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
     9     $lengths         = array("60","60","24","7","4.35","12","10");
    10   
    11     $now             = time();
    12     $unix_date         = strtotime($date);
    13   
    14        // check validity of date
    15     if(empty($unix_date)) {    
    16         return "Bad date";
    17     }
    18   
    19     // is it future date or past date
    20     if($now > $unix_date) {    
    21         $difference     = $now - $unix_date;
    22         $tense         = "ago";
    23   
    24     } else {
    25         $difference     = $unix_date - $now;
    26         $tense         = "from now";
    27     }
    28   
    29     for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
    30         $difference /= $lengths[$j];
    31     }
    32   
    33     $difference = round($difference);
    34   
    35     if($difference != 1) {
    36         $periods[$j].= "s";
    37     }
    38   
    39     return "$difference $periods[$j] {$tense}";
    40 }
    41   
    42 $date = "2009-03-04 17:45";
    43 $result = nicetime($date); // 2 days ago
    44   
    45 ?>

    中文函数代码如下:

     1  function nicetime($date)
     2     {
     3         if(empty($date)) {
     4             return "No date provided";
     5         }
     6       
     7         $periods         = array("秒", "分钟", "小时", "天", "周", "月", "年", "十年");
     8         $lengths         = array("60","60","24","7","4.35","12","10");
     9       
    10         $now             = time();
    11         $unix_date         = strtotime($date);
    12       
    13            // check validity of date
    14         if(empty($unix_date)) {    
    15             return "Bad date";
    16         }
    17       
    18         // is it future date or past date
    19         if($now > $unix_date) {    
    20             $difference     = $now - $unix_date;
    21             $tense         = "以前";
    22       
    23         } else {
    24             $difference     = $unix_date - $now;
    25             $tense         = "from now";
    26         }
    27       
    28         for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
    29             $difference /= $lengths[$j];
    30         }
    31       
    32         $difference = round($difference);
    33       
    34         if($difference != 1) {
    35             $periods[$j].= "";
    36         }
    37       
    38         return "$difference$periods[$j]{$tense}";
    39     }
    40     //用法示例
    41     // $date = "2009-03-04 17:45";
    42     // $result = nicetime($date); // 2 days ago
  • 相关阅读:
    10 行Python代码实现批量压缩图片500 张,面试必学
    用Python邮件发送,新手必学
    用Python监控男女朋友每天都在看哪些网站?这招绝了
    不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据?新手必学
    用Python做一个520表白神器,值得收藏
    微分不等式
    零点问题
    2019英语一 Text4分析
    A1065. A+B and C(64bit)
    A1046. Shortest Distance
  • 原文地址:https://www.cnblogs.com/zqifa/p/php-4.html
Copyright © 2020-2023  润新知