サポート » プラグイン » contact form 7 日付機能で時差が生じます

  • 解決済 gocchimama02

    (@gocchimama02)


    contactform7での日付機能を使い、
    [date* date-288 min:today+1days]
    で、min:today+1daysと翌日から指定しているのですが、0:00~8:59までの9時間が翌日となってくれません。
    管理画面の一般設定は東京としております。

    date_i18()で補正をしようと試みましたが、できませんでした。

    何か原因として考えられることはありますでしょうか?

    • このトピックはgocchimama02が3ヶ月、 1週前に変更しました。
5件の返信を表示中 - 1 - 5件目 (全5件中)
  •     $tommorow = date_i18n('Y-m-d', strtotime("tomorrow"));
    echo<<<EOF
    <script>
    jQuery(function($){
        if($('.wpcf7-date').length){
            $('.wpcf7-date').attr('min', '{$tommorow}');
        }
    });
    </script>

    fanctions.phpにこう書いています。

    こんにちは

    strtotime() の第2引数のデフォルトは time() の値になります。
    ローカルタイムの場合は、time() の代わりに current_time() を使います。

    $tommorow = date( 'Y-m-d', strtotime( 'tomorrow', current_time( 'timestamp' ) ) );

    または

    $tommorow = date( 'Y-m-d', current_time( 'timestamp' ) + 60 * 60 * 24 );

    ご返信ありがとうございます!
    ちなみに最初はjQueryを使わず、

    function cf7_change_min_date($content) {
        if( is_admin() ) return $content;
        $today = date_i18n('Y-m-d'); // Asia/Tokyo の今日の日付
        $tommorow = date_i18n('Y-m-d', strtotime("tomorrow")); // Asia/Tokyo の明日の日付
    
        // minの値が$today(東京の今日の日付)だったら、$tommorow(東京の明日の日付)に置換して返す
        $content = str_replace('min="' . $today . '"', 'min="' . $tommorow . '"', $content);
    
        return $content;
    }

    こんな感じに書いたのですが、これもうまく動かず時間が変にずれてしまったのは、current_time()を使っていないからでしょうか?

    こんな感じに書いたのですが、これもうまく動かず時間が変にずれてしまったのは、current_time()を使っていないからでしょうか?

    はい、strtotime() の第2引数を省略しているので UTC タイムになります。

    なるほどですね!
    ありがとうございます。
    助かりました(❁ᴗ͈ˬᴗ͈))

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。