概要
YouTube Data APIでは動画の投稿日を取得できます。動画(Videos)リソースのlistメソッドを使います。この情報を使って、動画が定められた期間に投稿されたかどうか判定するプログラムです。投稿日時は世界標準時(UTC)で渡されるのでひと手間加えます。
まずは、下準備として
をごらんください。
ソースコード
<?php
//APIを呼んで返ってきた値
$res_publishedAt = $res['snippet']['publishedAt'];
//この時点では世界標準時(UTC)
$publishedAt = new DateTime($res_publishedAt);
//日本時間にする
$publishedAt->setTimezone(new DateTimeZone('Asia/Tokyo'));
//比較時間1
$startAt = new DateTime("2023-01-01 00:00:00", new DateTimeZone('Asia/Tokyo'));
//比較時間2
$endAt = new DateTime("2023-12-31 23:59:59", new DateTimeZone('Asia/Tokyo'));
if($publishedAt < $startAt || $endAt < $publishedAt){
echo "期間外に投稿されました。";
}
注意
APIを呼んで返ってきた値をnew DateTime()に入れていますが、第二引数にnew DateTimeZone('Asia/Tokyo')をセットしてもうまくいきませんでした。なのでsetTimezone()と分けて日本時間に変換します。
ちなみに投稿日時を表示したい場合はこのようになります。
echo "投稿日時は{$publishedAt->format('Y年m月d日 H:i:s')}です。";
サンプルコード
その他、サンプルコードやGoogle APIに関するTIPSなどの一覧ページはこちら
Google APIに関する記事一覧