龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php把日期格式化成xx天前的格式

时间:2014-06-22 15:11来源:网络整理 作者:网络 点击:
分享到:
php把日期格式化成xx天前的格式 [代码片段(33行)]
// convert a date into a string that tells how long ago that date was.... eg: 2 days ago, 3 minutes ago.
function ago($d) {
    $c = getdate();
    $p = array('year', 'mon', 'mday', 'hours', 'minutes', 'seconds');
    $display = array('year', 'month', 'day', 'hour', 'minute', 'second');
    $factor = array(0, 12, 30, 24, 60, 60);
    $d = datetoarr($d);
    for ($w = 0; $w < 6; $w++) {
        if ($w > 0) {
            $c[$p[$w]] += $c[$p[$w-1]] * $factor[$w];
            $d[$p[$w]] += $d[$p[$w-1]] * $factor[$w];
        }
        if ($c[$p[$w]] - $d[$p[$w]] > 1) { 
            return ($c[$p[$w]] - $d[$p[$w]]).' '.$display[$w].'s ago';
        }
    }
    return '';
}

// you can replace this if need be. This converts my dates returned from a mysql date string into 
//   an array object similar to that returned by getdate().
function datetoarr($d) {
    preg_match("/([0-9]{4})(\\-)([0-9]{2})(\\-)([0-9]{2}) ([0-9]{2})(\\:)([0-9]{2})(\\:)([0-9]{2})/", $d, $matches);
    return array( 
        'seconds' => $matches[10], 
        'minutes' => $matches[8], 
        'hours' => $matches[6],  
        'mday' => $matches[5], 
        'mon' => $matches[3],  
        'year' => $matches[1], 
    );
}

精彩图集

赞助商链接