[PHP]何日前など経過時間を表示するにはDateTime->diff()

n日からn日までが何日間か?など日数を調べたい場合、DateTime->diff()を利用して、サーバーの今の時間と設の時間で差を計測します。差が1年以上なら年単位、1年内1月以上なら月単位、1月未満なら日単位、一日未満なら最新と表示します。週単位は面倒なのでやってない・・・・。

プラクティス・デモ

$data = get_the_date('Y-m-d');
$target = new DateTime($data);
$now = new DateTime(date_i18n('Y-m-d'));
$interval = $target->diff(now);
$echo = '';
if ($interval->y >= 1) {
  $echo = $interval->format('%y年前');
} else {
  if ($interval->m >= 1 && $interval->y == 0) {
    $echo = $interval->format('%mヶ月前');
  } else {
    if ($interval->m >= 1) {
    $echo = $interval->format('%d日前');
    } else {
      $echo = $interval->format('最新');
    }
  }
}
ソースコード装飾ならGoogle code prettify
しば に更新 934文字 522view
※この記事は2年前の記事です。内容が古い可能性があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください