質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.61%

Instagram Graph APIで日付を整えたい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 862

Mokn1356

score 22

Instagram Graph APIにて表示までは完了しておりますが、日付のタイムスタンプが「2020-03-13T01:11:20+0000」のような表示になっており、
これを「2020年3月13日」という風に整えたいのですが、何をどうすればよいのか手詰まりになり質問させていただきました。

■PHP

    // PHP
    $instagram = null; // JSONデータ配列をここに格納

    $instagram_business_id = ID'; // InstagramビジネスアカウントのID
    $access_token = トークン'; // 有効期限無期限のアクセストークン
    $post_count = 4; // 表示件数
    $query = 'name,media.limit(' . $post_count. '){caption,like_count,media_url,permalink,timestamp,username,comments_count}';
    $get_url = 'https://graph.facebook.com/v5.0/' . $instagram_business_id . '?fields=' . $query . '&access_token=' . $access_token;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $get_url);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  // curl_execの結果を文字列で返す
    $response = curl_exec($curl);
    curl_close($curl);

    if($response){
      $instagram = json_decode($response);
      if(isset($instagram->error)){
          $instagram = null;
      }
    }

■表示部分

<?php if(is_array($instagram->media->data)): ?>
    <div class="instagram-container">
    <?php
    foreach($instagram->media->data as $post):
      $caption = $post->caption;
      $timestamp = $post->timestamp;
    //   $caption = mb_convert_encoding($caption, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
      $caption = preg_replace('/\n/', '<br>', $caption);
    ?>
      <div class="instagram-item">
        <a class="instagram-card" href="<?php echo $post->permalink; ?>" target="_blank" rel="noopener noreferrer">
            <?php if($post->timestamp): ?>
          <span><?php echo $post->timestamp; ?></span>
          <?php endif; ?>
          <img class="instagram-card__img" src="<?php if($post->media_type=='VIDEO'){ echo $post->thumbnail_url; }else{ echo $post->media_url; } ?>" alt="<?php echo $caption; ?>">
          <?php if($post->caption): ?>
          <div class="instagram-card__comment"><?php echo $post->caption; ?></div>
          <?php endif; ?>
        </a>
      </div>
    <?php endforeach; ?>
    </div>
    <?php endif; ?>

前のAPIだとcreative_timeで変換できたのですが、今回のは分かりませんでした。

ご助力お願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

PHPで制御できるとしり、下記アドレスを参考に以下のコードで実現できました。
<?php echo date('Y年m月d日', strtotime($timestamp)); ?>

参考させていただきました。
https://eng-entrance.com/php-date#UNIX_TIMESTAMP-2

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る