PHPの数年前、数か月、数週間、数日(週の優先順位)

user1052096

私は、日付を受け入れ、これが過去または未来にどれくらい前であったかを人間が読める形式で返す、カスタマイズされたtimeago関数を作成することを検討してきました。

ただし、標準のtimeago関数を使用するのではなく、日付が20週間未満の場合にのみ、時刻を週と日で返すようにします。日付が20週間を超える場合は、通常どおり、年、月、週、日で時間を返すことができます。

これまでの関数は以下のとおりですが、日付が9週間前(2013年11月5日)の場合、9週間前ではなく、2か月前と2日前として返されます。

function time_elapsed_string($datetime, $full = false) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);

$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;

$string = array(
    'y' => 'year',
    'm' => 'month',
    'w' => 'week',
    'd' => 'day',
);
foreach ($string as $k => &$v) {
    if ($diff->$k) {
        $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
    } else {
        unset($string[$k]);
    }
}

if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' old' : 'just now';
} 
亀頭

あなたはただ置き換えることができます:

$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;

と:

if (20 > $diff->days / 7) {
    $diff->y = $diff->m = $diff->h = $diff->i = $diff->s = 0;
    $diff->w = floor($diff->days / 7);
    $diff->d = $diff->days - $diff->w * 7;
} else {
    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;
}

demo

link to the function

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

今日、先週、先月、今週の複数選択

分類Dev

Moment.jsを使用した特定の日付からの数日/数週間前

分類Dev

MySQL変数の優先順位

分類Dev

Haskellの関数合成の優先順位は何ですか?

分類Dev

数日、数時間、数週間、数か月後にタイムスパンを反復する方法は?

分類Dev

数式の正しい優先順位は何ですか

分類Dev

Haskell:関数の引数による矢印の優先順位

分類Dev

関数と変数の実行の優先順位

分類Dev

複数のDataWeave関数の優先順位

分類Dev

Pythonデータフレームから過去数年間の先週のデータを取得する方法は?

分類Dev

||間の優先順位 および&&-java

分類Dev

ユーザー指定の時間単位の数を別の時間単位に変換します(秒から週、週から時間など)。

分類Dev

演算子のPHPの優先順位

分類Dev

先週の時間数を計算します

分類Dev

複数の+および-演算子のJava優先順位

分類Dev

複数の@ ControllerAdvice @ ExceptionHandlersの優先順位を設定する

分類Dev

T-SQLでの数値型の優先順位

分類Dev

Cでの静的関数の優先順位

分類Dev

Haskellでの演算子と無名関数の優先順位

分類Dev

Rでの関数呼び出しの優先順位

分類Dev

PHPと参照、演算子の優先順位

分類Dev

bigqueryで月の週数を知る

分類Dev

今月の週-間隔

分類Dev

常に呼び出される出口-変数の優先順位

分類Dev

関数呼び出し演算子の優先順位

分類Dev

Ansible-同じ優先順位の変数を追加します

分類Dev

月を1つ増やし、月を1週間増やすExcelの数式

分類Dev

月の分割週

分類Dev

TSQLは、複数年にわたる数週間の平均カウントを作成します

Related 関連記事

  1. 1

    今日、先週、先月、今週の複数選択

  2. 2

    Moment.jsを使用した特定の日付からの数日/数週間前

  3. 3

    MySQL変数の優先順位

  4. 4

    Haskellの関数合成の優先順位は何ですか?

  5. 5

    数日、数時間、数週間、数か月後にタイムスパンを反復する方法は?

  6. 6

    数式の正しい優先順位は何ですか

  7. 7

    Haskell:関数の引数による矢印の優先順位

  8. 8

    関数と変数の実行の優先順位

  9. 9

    複数のDataWeave関数の優先順位

  10. 10

    Pythonデータフレームから過去数年間の先週のデータを取得する方法は?

  11. 11

    ||間の優先順位 および&&-java

  12. 12

    ユーザー指定の時間単位の数を別の時間単位に変換します(秒から週、週から時間など)。

  13. 13

    演算子のPHPの優先順位

  14. 14

    先週の時間数を計算します

  15. 15

    複数の+および-演算子のJava優先順位

  16. 16

    複数の@ ControllerAdvice @ ExceptionHandlersの優先順位を設定する

  17. 17

    T-SQLでの数値型の優先順位

  18. 18

    Cでの静的関数の優先順位

  19. 19

    Haskellでの演算子と無名関数の優先順位

  20. 20

    Rでの関数呼び出しの優先順位

  21. 21

    PHPと参照、演算子の優先順位

  22. 22

    bigqueryで月の週数を知る

  23. 23

    今月の週-間隔

  24. 24

    常に呼び出される出口-変数の優先順位

  25. 25

    関数呼び出し演算子の優先順位

  26. 26

    Ansible-同じ優先順位の変数を追加します

  27. 27

    月を1つ増やし、月を1週間増やすExcelの数式

  28. 28

    月の分割週

  29. 29

    TSQLは、複数年にわたる数週間の平均カウントを作成します

ホットタグ

アーカイブ