PHPにて指定した期間内のランダムな日付をn件生成し、日付順にソートした上で受け取る方法
PHPにて指定した期間内のランダムな日付を指定した数だけ生成し、さらに日付順にソートして配列で受け取りたいというケースがあった。以下に対応方法をメモ。
対応方法
ソースコード
<?php //開始日と終了日設定 $start = new Datetime('2024-01-01'); $end = new Datetime('2024-12-31'); //何件作成するか設定 $min = 0; $max = 5; $date_list = array(); while( $min < $max ){ //指定した期間内のランダムなタイムスタンプを取得 $timestamp = mt_rand($start->format('U'), $end->format('U')); $date = new Datetime(); $date = $date->setTimestamp($timestamp)->setTimezone(new DateTimeZone('Asia/Tokyo'))->format('Y-m-d'); if( !in_array($date, $date_list) ){ $date_list[] = $date; $min++; } } //日付順にソート array_multisort(array_map('strtotime', $date_list ), SORT_ASC, $date_list); var_dump($date_list);
出力例
上記ソースコードを実行した際の出力例は以下の通り。
array(5) { [0]=> string(10) "2024-03-06" [1]=> string(10) "2024-07-22" [2]=> string(10) "2024-09-26" [3]=> string(10) "2024-11-15" [4]=> string(10) "2024-12-11" }
関連記事
-
-
PHPでPOST送信する際に多次元配列も送る方法
PHPでPOST送信する際に多次元配列も送りたかった。ただ普通に送ろうとするとO ...
-
-
PHPMailerでメールを送信する際にTLS / SSL暗号化させる方法
PHPMailerでメールを送信したところGmailで確認すると赤い鍵のようなア ...
-
-
PHPでOGPタグ(metaタグ)を簡単に取得できる「OpenGraph.php」の利用方法
PHPでOGPタグ(metaタグ)を取得する際、file_get_content ...
-
-
PHPでCSVファイルを出力する際に「①」や「㈱」等の環境依存文字が文字化けする対応方法
過去記事の方法を用いてPHPでCSVファイルを出力すると所々「?」という形に文字 ...
-
-
PHPでダミー画像(プレースホルダー画像)を表示する「PHP-Dummy-Image-Generator」の利用方法
先日JavaScriptでダミー画像(プレースホルダー画像)を表示する「Hold ...