• 解決済 mikujin

    (@mikujin)


    お世話になります。
    特定の日付から今日までの経過日数を表示したいのですが、どうやっても上手くいかず、こちらに投稿させて頂きました。
    特定の日付は、プラグインのACFのフィールドの値となります。

    問題のコードは以下です。
    出力値は、フィールドの日付を変更しても「18846」となります。

    <?php 
    $today = date('Y/m/d');
    $today = strtotime($today);
    $finish = get_field('the-date');
    $finish = strtotime($finish);
    $diff = $today - $finish;
    $daysleft = floor($diff/(60*60*24));
    echo "$daysleft 日経過";
    ?>

    タイムゾーンの記載を入れるとACFの日付が1日ずれたので、消しています。

    ご教授いただければ幸いです。
    どうぞ宜しくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    get_field() で取得した日付の書式が strtotime() がサポートしていない書式なのかもしれません。サポートしている書式かどうか、下記ページを参考に確認してみてください。
    https://www.php.net/manual/ja/datetime.formats.date.php

    • この返信は3年、 4ヶ月前にishitakaが編集しました。

    @mikujinさん

    はじめまして。
    まずは以下のようなコードで、ACFの値を想定している日付形式として取得出来ているか確認してみるのはいかがでしょうか。

    $finish = get_field('the-date');
    var_dump ( $finish );

    また、get_fieldでどのような形式で取得するかはACF側で設定する必要があると思いますが、以下画像のReturn formatは「Y/m/d」に設定されていますでしょうか。
    https://raw.githubusercontent.com/AdvancedCustomFields/docs/master/assets/acf-date-picker-field-settings.png

    トピック投稿者 mikujin

    (@mikujin)

    ishitaka 様
    Tetsuaki Hamano 様

    迅速なご返信ありがとうございます。
    無事解決いたしました。

    原因は、ACFフィールドの日付フォーマットが「Y/m/d(D)」で設定していたのに対して、記載したコードがY/m/dだったからのようです。
    現在、意図した数値になっています。

    大変勉強になりました。
    貴重なお時間を使ってご教示頂きありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「特定の日付から今日までの経過日数を表示する方法」には新たに返信することはできません。