2011-03-18 6 views
0

たとえば、投稿を送信すると、「1秒前に送信されました」と表示されることがあります。それが2週間だったらそれはそう言うでしょう。 SOとRedditはこれらを書いていましたか、日付をより人間が読める形式に変換するPHP/SQL関数がありますか?StackOverflow/Redditの日付システムのライブラリまたは既知の関数はありますか?

+0

でのUNIXタイムスタンプを配置します/ 5300050/so-dates-計算と書式設定/ 5300051#5300051 – Nishant

答えて

2

私は非常にジョンResig氏の美しい日付ライブラリにチェックアウトをお勧めしたい:そのブログ記事に示されているように

http://ejohn.org/blog/javascript-pretty-date/

を、あなたはこのようなことを行うことができます。

prettyDate("2008-01-28T20:24:17Z") // => "2 hours ago" 
prettyDate("2008-01-27T22:24:17Z") // => "Yesterday" 
prettyDate("2008-01-26T22:24:17Z") // => "2 days ago" 
prettyDate("2008-01-14T22:24:17Z") // => "2 weeks ago" 
prettyDate("2007-12-15T22:24:17Z") // => undefined 
1

彼らが呼ばれていますファジー日付/時刻JavaScriptPHPのライブラリが多数あります。

0

方法はたくさんがありますが、それをTODOいますが、PHPを使用したい場合は、この機能は良い方法でそれを出力するだけで、このhttp://stackoverflow.com/questionsを参照してください

function timeDiffrence($from, $to = null){ 
    $to = (($to === null) ? (time()) : ($to)); 
    $to = ((is_int($to)) ? ($to) : (strtotime($to))); 
    $from = ((is_int($from)) ? ($from) : (strtotime($from))); 
    $units = array 
    (
    " Years" => 29030400, // seconds in a year (12 months) 
    " Months" => 2419200, // seconds in a month (4 weeks) 
    " Weeks" => 604800, // seconds in a week (7 days) 
    " Days" => 86400, // seconds in a day (24 hours) 
    " Hours" => 3600,  // seconds in an hour (60 minutes) 
    " Minute" => 60,  // seconds in a minute (60 seconds) 
    " Second" => 1   // 1 second 
    ); 
    $diff = abs($from - $to); 
    $suffix = (($from > $to) ? (" from now") : (" ")); 
    foreach($units as $unit => $mult) 
    if($diff >= $mult) 
    { 
     $and = (($mult != 1) ? ("") : ("and ")); 
     $output .= "".$and.intval($diff/$mult)."".$unit.((intval($diff/$mult) == 1) ? (", ") : ("'s, ")); 
     $diff -= intval($diff/$mult) * $mult; 
    } 
    $output .= " ".$suffix; 
    $output = substr($output, strlen("")); 
    if($output =='go' || $output ==' ago'){$output = 'A few secs ago';} 
    return 'Posted '.str_ireplace('1 Days','1 Day',trim($output,', ')).' ago'; 
} 
関連する問題