2012-04-16 88 views
10

我在寻找一个PHP ,它生成用户友好的时间表示 - 例如“时间前两小时”时间戳为time() - 2 * 3600用于生成用户友好相对时间戳的PHP库

有几个存在问题的答案和博客文章(1,2,3),但都只包含代码片段 - 不是我可以安装和升级的库。

Django has one,Python中也有一个standalone lib,JavaScript有几个(123),太 - 哪里是PHP库?


库应具有以下的事情:

  • 文档
  • PEAR安装
  • 定期发布
  • (可选)翻译
+0

如图书馆有什么资格你的问题的背景? – hakre 2012-04-16 09:07:37

+0

任何不使用JavaScript库的理由? – 2012-04-16 09:09:52

+2

我不想依赖javascript,因为目标受众群体使用的浏览器如lynx。 – cweiske 2012-04-16 11:58:52

回答

1

Kohana的日期类提供fuzzy_span()方法这一点。但它不能回答你精确值,如“10分钟”

0

试试这个代码:

$current_date_time_get_updated_on_date_format = ''; 

function get_updated_on_date_format($dt_updated, $prefix = 'Updated ', $at = 'at ') { 
    global $current_date_time_get_updated_on_date_format; 

    if ($current_date_time_get_updated_on_date_format == '') { 
     $current_date_time_get_updated_on_date_format = now(); 
    } 

    $i_second_now   = strtotime($current_date_time_get_updated_on_date_format); 
    $i_second_dt_updated = strtotime($dt_updated); 
    $i_second_diff  = $i_second_now - $i_second_dt_updated; 
    $s_return_date_format = ''; 

    if ($i_second_diff < 0) { 
     // Developers Uploading Time, Time Zone Gap Patch 
     $s_return_date_format = $prefix . $at . date('g:ia \o\n F jS, Y', strtotime($dt_updated)); 
    } else if ($i_second_diff < 60) { 
     $s_return_date_format = $prefix . $i_second_diff . ' seconds ago '; 
    } elseif ($i_second_diff < (60 * 60)) { 
     $s_return_date_format = $prefix . round(($i_second_diff/60), 0) . ' minitues ago '; 
    } elseif ($i_second_diff < (60 * 60 * 24)) { 
     $s_return_date_format = $prefix . round(($i_second_diff/(60 * 60)), 0) . ' hours ago '; 
    } else { 
     $s_return_date_format = $prefix . $at . date('g:ia \o\n F jS, Y', strtotime($dt_updated)); 
    } 

    return $s_return_date_format; 

} 

function now() { 
    // it should extract database time in this format 'YYYY-MM-DD HH:MM:SS' 
    return mysql_now_value; 
} 
+2

我确实特别要求一个库,而不是代码片段。 – cweiske 2012-04-16 11:56:03