佐賀でふらふり

佐賀をうろつくWebデザイナーのブログ

WordPress こうしてみた よく使う

『Advanced Custom Fields』のデイトピッカーから曜日を割り出す


今日は上着を厚手のにしました。
部屋にいても冷えますよねぇ。

さて、今日はAdvanced Custom Fieldのデイトピッカーを使った時の話。
大変便利なAdvanced Custom Fieldですが、その中のデイトピッカーを使っても曜日までは表示されません。

通常あんまり必要ないのかもしれませんが、今回必要となったのでそのやり方をメモしておきます。

目次

  1. Advanced Custom Fieldのデイトピッカーの設定
  2. 曜日の取得
  3. まとめ

Advanced Custom Fieldのデイトピッカーの設定

まずはAdvanced Custom Fieldの設定です。
『date_res』という名前で作成しました。
Advanced Custom Fieldの設定 - 『Advanced Custom Fields』のデイトピッカーから曜日を割り出す

一応『フォーマットを保存する』欄はハイフンついていません。
チュートリアルなんかには、ハイフン付きの日付が多いんですが、結果的にはハイフンがあってもなくても同じ結果が得られました。

その他はご自由に。

もちろんこのまま表示しても、曜日は出ません。
初期表示 - 『Advanced Custom Fields』のデイトピッカーから曜日を割り出す

曜日の取得

曜日は指定した日付から取得します。
今回はカスタムフィールドに入力した日付『date_res』ですね。

まずはこのフィールドの値(日付)を取り出します。

$get_date = get_field('date_res');

Advanced Custom Fieldを使っていればこう書けば取得できますね。(ループ内)

続いて、この日付を利用して曜日を判別するんですが、どうやらdate()を使うと何やら問題があるらしい(2038年問題)。

date() は古くからある方法で、ほとんどの環境で使うことが出来ますが、タイムスタンプ(UNIX時間)を使用する場合 2038年1月19日 までしか使用できないという欠点を抱えています。(2038年問題)
日付から曜日を割り出す | PHP Archive

なので、DateTimeクラスを使っての方法を拝借。

$datetime = date_create($get_date);
$week = array("日", "月", "火", "水", "木", "金", "土");
$w = (int)date_format($datetime, 'w');
$youbi = $week[$w];

これで投稿した日付から
投稿画面 - 『Advanced Custom Fields』のデイトピッカーから曜日を割り出す

何やらよくわからないままに曜日を取得することが出来ました。
最終結果 - 『Advanced Custom Fields』のデイトピッカーから曜日を割り出す

前はdate()を使って

$datetime = strtotime($date_res);
$week = array("日", "月", "火", "水", "木", "金", "土");
$w = date("w", $datetime);
$youbi = $week[$w];

こんな方法でやってました。
これでも同じように、曜日が取得できますよ。

まとめ

date()を使う方法は以前作ったテンプレートの中にあったんですが、今回違う方法を試してみましたところ、さっぱり何が何だか…。

2038年頃には違うシステムが組まれているだろうし、そもそもWordPressが、いやPHPが生き残ってるかどうかもよくわからないし、date()でもいいかなぁ。なんてことも思いました。

本当は日付を別の形で表示したりもしていたんですが、それはまた後日。
そいぎ~。


返信する

メールアドレスが公開されることはありません。

CAPTCHA