0

経過した分数、時間数、または日数を表示するビューヘルパーを作成しようとしています...今。どうすればいいのかよくわかりません。日付の比較は機能しているようですが、数値を取得する方法がわかりません。これが私がこれまでに持っているものです:

<?php

class Zend_View_Helper_RecentDate
{
    public function recentDate($datetime)
    {
        $date = new Zend_Date($datetime);

        switch ($date) {
            case($date->isEarlier(1, Zend_Date::HOUR)):
                $message = 'was minutes ago';
                break;
            case($date->isEarlier(24, Zend_Date::HOUR)):
                $message = 'was hours ago';
                break;
            case($date->isEarlier(48, Zend_Date::HOUR)):
                $message = 'Yesterday';
                break;
            default:
                $message = 'was days ago';
                break;
        }
        return $message;
    }
}

「だった」を実際に経過した分/時間/日数に置き換えたい。

4

3 に答える 3

1

既に Zend Framework を使用しているため、Zym FrameworkにはTimeSinceビュー ヘルパーがあります。これは、追加の ZF 拡張機能とヘルパーのライブラリです。

ヘルパーは基本的にあなたTimeSinceがやろうとしていることを正確に行います:

Last updated <?= $this->timeSince($timestamp); ?> ago

次のような出力が得られます:

Last updated 8 hours ago
于 2009-10-28T20:57:55.127 に答える
0

$time = sprintf("%d 時間、%d 分、%d 秒\n", $s / (1000 * 60 * 60), $s / (1000 * 60), $s);

$s は秒です

$datetime が UNIX タイムスタンプであると仮定すると、 $ms を取得できます(time() - $timestamp)

ファジー タイムスタンプ クリエーターが必要な場合は、http: //plugins.trac.wordpress.org/browser/splees-fuzzy-datetime/trunk/splees_fuzzy_datetime.phpを参照してください。

于 2009-10-28T20:47:13.200 に答える
0

Zend_Date はタイムスタンプを使用する方がはるかに簡単であることがわかりました。次に、必要に応じて出力をフォーマットします (表示ヘルプを使用することもできます)。

(できればこれはコメントだったでしょう)

于 2009-10-29T11:55:35.333 に答える