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