2

Twitter 検索 API Atom フィードから 2008-11-03T21:30:06Z として返される公開日は、Twitter メッセージが投稿されてからどれくらい経ったかを示すために、「X 秒/分/時間/日前」に変換する必要があります。

これは、DATE_ATOM 値を使用して php の date() 関数で実行できると思いますか?

4

3 に答える 3

3
function time_since($your_timestamp) {
    $unix_timestamp = strtotime($your_timestamp);
    $seconds = time() - $unix_timestamp;
    $minutes = 0;
    $hours = 0;
    $days = 0;
    $weeks = 0;
    $months = 0;
    $years = 0;
    if ( $seconds == 0 ) $seconds = 1;
    if ( $seconds> 60 ) {
        $minutes =  $seconds/60;
    } else {
        return add_s($seconds,'second');
    }

    if ( $minutes >= 60 ) {
        $hours = $minutes/60;
    } else {
        return add_s($minutes,'minute');
    }

    if ( $hours >= 24) {
        $days = $hours/24;
    } else {
        return add_s($hours,'hour');
    }

    if ( $days >= 7 ) {
        $weeks = $days/7;
    } else {
        return add_s($days,'day');
    }

    if ( $weeks >= 4 ) {
        $months = $weeks/4;
    } else {
        return add_s($weeks,'week');
    }

    if ( $months>= 12 ) {
        $years = $months/12;
        return add_s($years,'year');
    } else {
        return add_s($months,'month');
    }

}

function add_s($num,$word) {
    $num = floor($num);
    if ( $num == 1 ) {
        return $num.' '.$word.' ago';
    } else {
        return $num.' '.$word.'s ago';
    }
}

echo time_since('2008-11-03T21:30:06Z');
于 2008-11-03T22:20:38.037 に答える
1

strtotimeはその日付形式を処理し、UNIX タイムスタンプを提供します。次に、 「相対時間を計算するにはどうすればよいですか?」のアルゴリズムに従うことができます。あなたの結果を得るために。

于 2008-11-03T21:48:27.977 に答える
0

これは、PHP 5.2 で導入されたDateTime機能を使用すると簡単です。

$posted   = new DateTime('2008-11-03T21:30:06Z');
$now      = new DateTime();
$interval = $posted->diff($now);
echo $interval->format('%a days'); // You can change this to be whatever format you like

于 2013-01-30T02:27:51.467 に答える