ACF デートピッカーのフォーマット設定

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

Advanced Custom Fields デートピッカーの日付フォーマットは表示形式(投稿欄での表示)と戻り値の形式(テーマでの表示)がある。
いずれも「〇〇年◯月◯日(曜日)」の表示で良い場合は Y年n月j日(D) としておくと曜日も日本語(月・火~のように)で表示できる。

戻り値を関数で利用したり、出力時にフォーマットを変える必要があるときは Ymd で保存しておくと
$date_string = get_field( ‘date’ );
$date = DateTime::createFromFormat( ‘Ymd’, $date_string );
$date->format( ‘Y-n-j’ );
のように変更できる。
テーマ上ではこの方法で Y年n月j日(D) とすると、曜日が英字になる。
*DateTime::createFromFormatで Y-n-j で保存した日付をYmdに変換すると Y の値がおかしくなった。DateTime::createFromFormat はAdvanced Custom Fields のサイトで紹介されているが、new DateTime で変換したほうがいいかもしれない。

リピーターで登録した日付を参照用フィールドに保存する関数。カレンダーでの参照時には 'Y-n-j' がよいので。
function my_acf_update_event( $value, $post_id, $field ) {
    if(have_rows('dates')) { while (have_rows('dates')) : the_row();
		$date_string = get_sub_field( 'date' );
	$data = DateTime::createFromFormat( 'Ymd', $date_string );
        $date[] = $data->format( 'Y-n-j' );
    endwhile; } 
    $value = implode(',', $date);
    return $value;
}
add_filter('acf/update_value/name=datedata', 'my_acf_update_event', 10, 3);