web関連

指定した日時から何年たったか出力する方法

指定した日時から何年たったか出力する方法

お客さんのサイトの更新作業で設立何年目とか創業何年目とかをいちいち手打ちで修正しているのめんどくさいので指定した日時から何年たったか出力するphp作ってみました。

指定した日時から何年目か出力

<?php
date_default_timezone_set('Asia/Tokyo');
$today = new DateTime("now");
$date = new DateTime('2001-01-01');
if ($date <= $today ) {
	$interval = date_diff($today, $date);
	// 何年目か出力
	echo $interval->y . '年目';
}
?>

カスタムフィールドのデイトピッカーを使った場合

<?php
date_default_timezone_set('Asia/Tokyo');
$today = new DateTime("now");
$date = get_field('カスタムフィールド名', false, false);
$date = new DateTime($date);

// 指定した年月が現在を超えていたら表示しない
if ($date <= $today ){
	$interval = date_diff($today, $date);
	if( $interval->y == 0){
		// 0年の時は表示しない		
	}else{
		// 何年目か出力
		echo $interval->y . '年目';
	}
}
?>

「get_field(‘カスタムフィールド’)」でそのまま値を出力するだけだとうまくいかない
引数を設定する必要がある

// 「get_field」の引数
get_field ( $field_name , $post_id , $format_value );

「$format_value」は「false」にしておかないと管理画面のカスタムフィールドで設定した「返り値のフォーマット」が出力されてしまうので注意

お客さんが間違って入力することを考慮して条件分岐入れてます
コーポレートサイトとかだと会社設立してから何年目とか結構ある気がする