PHP 日付を削除したり変換したり

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

Advanced Custom Fields Pro のリピーターで保存した日付を含む文字列の処理について覚え書き

今月以降の日付データを取得

$ym = date(get_sub_field('yearmonth')); 
$now_date = date($ym);
$now_date = explode('-', $now_date);
$y=$now_date[0]; 
$m=$now_date[1];							 
if (strtotime(date('Y-n-1')) <= strtotime($ym.'-1')) {
$data[] = get_sub_field('date');

データを配列にして今日以前の日付を削除

$datalist = implode(',',$data); 
$dates = explode(',',$datalist);
$today = strtotime('today'); 
$filtered_dates = array_filter($dates, function($date_str) use ($today) {
return strtotime($date_str) > $today;
});
$filtered_dates = array_values($filtered_dates);

strtotime('today') に1日プラスする場合はstrtotime('today', strtotime('+1 day'))、12時間プラスする場合はstrtotime('today', strtotime('+12 hours'))

日付のフォーマットを変換

$newFormat = 'Y年n月j日';
$formattedDates = array_map(function($dateStr) use ($newFormat) {
$date = DateTime::createFromFormat('Y-n-j', trim($dateStr));
    return $date ? $date->format($newFormat) : $dateStr;
}, $filtered_dates);

予約可能日をカレンダーで表示するサンプル

関数書きますので、気軽にお問い合わせください。
問い合わせフォーム / m.fuchibe@web-taiyo.com / Chatwork ID:taiyoblog