-2

重複の可能性:
PHP:フォーマット時間StackoverflowまたはAppleMailスタイル

こんにちは誰かが私を助けてくれますか?私はmysqlテーブルのタイムスタンプをエコーアウトしていますが、phpにタイムスタンプを日/時間/分で計算させたいです。

これは可能ですか、私はまだphpとmysqlに慣れておらず、学んでいるので、誰かが私を正しい方向に導くか、これがどのように行われるかを教えてください。ありがとうございました

<? echo "{$news['date_added']}";?> 

出力を秒数にしたい:12秒前に追加または3分前に追加または4日前に追加または4か月前に追加

スクリプトは次のようになります。

function nicetime($date)
{
    if(empty($date)) {
        return "No date provided";
    }

    $periods         = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
    $lengths         = array("60","60","24","7","4.35","12","10");

    $now             = time();
    $unix_date         = strtotime($date);

       // check validity of date
    if(empty($unix_date)) {   
        return "Bad date";
    }

    // is it future date or past date
    if($now > $unix_date) {   
        $difference     = $now - $unix_date;
        $tense         = "ago";

    } else {
        $difference     = $unix_date - $now;
        $tense         = "from now";
    }

    for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
        $difference /= $lengths[$j];
    }

    $difference = round($difference);

    if($difference != 1) {
        $periods[$j].= "s";
    }

    return "$difference $periods[$j] {$tense}";
}

$date = "{$news['content']}";
$result = nicetime($date); // 2 days ago ?>
4

3 に答える 3

2
$datetime1 = new DateTime();
$datetime2 = new DateTime('2013-02-03 19:13:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h hours %i minutes');

実際に見てください

参照

于 2013-02-04T16:37:04.650 に答える
0

date()マニュアルの機能をご覧ください。http://php.net/manual/en/function.date.php

<?php echo date("Y-m-d",$news['date_added']); ?>

たとえば、次のように印刷します。

2013-02-04 
于 2013-02-04T16:25:59.523 に答える
0

MySQLテーブルのタイムスタンプの場合、FROM_UNIXTIME関数を使用して適切な形式で取得できます。

于 2013-02-04T16:31:16.323 に答える