内容を更新しました
とあるサイトで、ACFのデイトピッカーで設定した日付から曜日を設定するようにしたのですが、ある時、曜日がいつまでたっても木曜日のままであることに気が付きました。
設定した日付が常に19700101で取得してしまっていたようです。
原因がよくわからずこねくり回した結果、戻り値を下図のように「20230331」と表示されるようにし、出力時にフォーマットを調整するようにしたところうまく表示できました。 戻り値はシンプルにしておくのがよいみたい。
こんなかんで修正して対応しました。出力時に「2023.03.31.」と表示されるようにフォーマットを調整しています。
<?php echo $onair = date("Y.m.d.", strtotime(get_field('date'))); ?>
<?php $week = array( "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT");
echo $week[date("w", strtotime(get_field('date')))];
?>
更新前の記事
ACFのカスタムフィールドのデイトピッカーで指定した値から曜日を取得したときのメモ。
英語の曜日の3文字省略で設定する必要があったので、datet('D')で対応したのですが、「全部大文字で!」ってことだったので曜日番号を取得してあてがう方法で対応しました。よく日本語表示で用いられる方法ですね。
<?php
$week = array( "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT");
echo $week[date("w", strtotime(get_field('date')))];
?>
実装した後に、出力結果に対して「text-transform: uppercase;」で調整すればよかったのでは?と思ったり・・・。