サポート » 使い方全般 » カスタムフィールド 指定日の○日前と、○日後 文字

  • popopopo

    (@popopopo)


    カスタムフィールドに、イベントの開催日をいれています。
    今日の日付が、その開催日の○日前・前日・開催日以降なったら
    それぞれ、違う文字をページに挿入させたいのですが
    上手くできません・・。

    どのようにしたらよいでしょうか・・・?

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • ishitaka

    (@ishitaka)

    こんにちは

    どのように上手くいかないのか、もう少し具体的(コードなど)に示していただければと思います。

    トピック投稿者 popopopo

    (@popopopo)

    参考になりそうなコードを、参照に

           <?php
    // カスタムフィールドを取得する
    $event_date = get_post_meta($post->ID , ‘日付カスタムフィールド名’ ,true);
    // 日付の文字列を変換する
    $event_date_time = date(‘Y/m/d’, strtotime($event_date));

            // イベント当日を含めない
    // イベント当日を含める場合は、「>」を「>=」に変更
    if (date_i18n(‘Y/m/d’) > $event_date_time) :
    ?>
    ここに日付を超えた場合の記述
    例:このイベントは終了しました。
    <?php elseif(date_i18n(‘Y/m/d’) < $event_date_time): ?>
    ここに日付を超えていない場合の記述
    例:参加受付中
    <?php endif ?>

        ↓

        これを、イベント7日前になったら、○○○
        イベント、日付を超えたら、○○○ 

        としたいのですが、イベント7日前になったらが、上手くできないです。

    ishitaka

    (@ishitaka)

    下記コードでイベント日までの日数を取得することができます。

    $days = ( strtotime( $event_date ) - strtotime( date_i18n( 'Y-m-d' ) ) ) / ( 60 * 60 * 24 );
    echo "イベント当日まで後{$days}日です。";
    トピック投稿者 popopopo

    (@popopopo)

    ありがとうございます。
    これで、7日~0日・0日以降 で、数字より大きい・小さいにしたらいいのですね。
    これだと上手く動かないのです・・。どうしたらよいしょうか・・。

    if($days >= 7){
    echo “表記なし・・”;
    }elseif($days <= 7){
    echo “開催直前”;
    }
    else($days < 0){
    echo “募集終了”
    }

    ishitaka

    (@ishitaka)

    こんな感じでしょうか。

    if ( $days >= 7 ) {
    	echo "表記なし・・";
    } elseif ( $days > 0 ) { // 当日を含める場合は >=
    	echo "開催直前";
    } else {
    	echo "募集終了";
    }
    トピック投稿者 popopopo

    (@popopopo)

    〇以下は、それ以外で、なしということですね。
    ありがとうございます!やってみます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「カスタムフィールド 指定日の○日前と、○日後 文字」には新たに返信することはできません。