RSSを自作PHPで作る為の日付をpubDateに逆変換する自作関数
2022-01-16 666 1630pubDateは独特でやっかいな表記型で扱いにくい。
<rss2.0 pubDateの書式>
Sun, 16 Jan 2022 01:54:00 +0000
pubDateを通常の日時表記にする方法はネットに多く転がっているけど、逆はありませんでしたので、
特定の日付(日付指定)で通常の日時型(2022/01/16 00:00:00)をpubDateの書式に変換する関数を作成しました。
たかが日時表記の変換なので難易度が低いですが、pubDateは地味に面倒な書式です。
RSSを自力で作成する人はほとんどいないと思うので、マニアックな事象なのですが。
当ブログはブログシステム自体が自作なので、RSSも自力で作成せざるを得ませんでした。自作の魅力は自由が効くところ。フレームワークやワードプレスのルールなんて邪魔でしかない。ゼロから自作することで根本から理解ができるのも高メリット。
<日時を配列に変換>
<?php
function cngDaytimeArray($datetime){
$date[] = substr($datetime,0,4);
$date[] = substr($datetime,5,2);
$date[] = substr($datetime,8,2);
$date[] = substr($datetime,11,2);
$date[] = substr($datetime,14,2);
return $date;
}
?>
<pubDateに変換>
<?php
function pubDate($datetime){
$array = cngDaytimeArray($datetime);
list($y,$m,$d,$H,$i) = $array;
$yobi = date("D", strtotime("{$y}-{$m}-{$d}"));
$month = date("M", strtotime("{$y}-{$m}-{$d}"));
$str = "{$yobi}, {$d} {$month} {$y} {$H}:{$i}:00 +0000";
return $str;
}
?>
<pubDate逆変換関数の使い方>
上記2つのユーザー定義関数をコピペしてください。
datetime変数には「y/m/d H:i:s」書式(2022/01/16 00:00:00)の日時をセットします。
<?php
$pubdate = pubDate($datetime);
?>