トップページ > プログラム > PHP > PHP で日付のスラッシュで分割して配列に入れるプログラムの書き方
PHP で日付のスラッシュで分割して配列に入れるプログラムの書き方
PHP で日付を取り扱う場合、YYYY-MM-DD や YYYY/MM/DD のように年月日をハイフンやスラッシュで区切る形式であることが多いが、これらの形式から年月日それぞれを分割して配列に入れるプログラムの書き方について紹介する。
このページの目次
1. 日付の分割とは
日付の分割とは、2021-07-16 のように年月日の数値の間にハイフンやスラッシュがある YYYY-MM-DD の形式から、年・月・日のそれぞれの値を分割して取得するものである。
データべースのカラムを日付型で作成した場合は、入れる値は YYYT-MM-DD の形式でなければならないため、データベースから日付を取得して年だけ、月だけ、日だけを抽出したい場合に次の方法で取得することができる。
2. 日付を分割して配列に入れる方法
日付を年月日それぞれで分割する場合、下記のように PHP の関数「preg_match」を利用するとハイフンやスラッシュなど指定する文字で分割するとともに、同時に分割した文字を配列に入れることができる。
下記の PHP のコードはスラッシュで区切られた日付を年・月・日に分割したものである。
<?php $setDate = '2021/7/8'; $dateArr = array(); preg_match( "/([0-9]{1,4})\/([0-9]{1,2})\/([0-9]{1,2})/", $setDate, $dateArr ); echo $dateArr[0] . "\n"; // 2021/7/8 が表示 echo $dateArr[1] . "\n"; // 2021 が表示 echo $dateArr[2] . "\n"; // 7 が表示 echo $dateArr[3] . "\n"; // 8 が表示 ?>
関数「preg_match」に指定する一つ目のオプション値は元なる値で分割したい箇所(マッチさせるパターン)を正規表現で指定している。
正規表現でマッチさせるパターンを指定するためにデミリタと呼ばれる記号文字で挟む必要があり、一般的にスラッシュが用いられる。
ところが、今回は元となる日付にもスラッシュがあるため、\ でエスケープしている。
デミリタをスラッシュ以外にすると下記のようにスラッシュをエスケープする必要が無くなる。
preg_match( "@([0-9]{1,4})/([0-9]{1,2})/([0-9]{1,2})@", $setDate, $dateArr );
また、上記では日付の月と日が 1 桁の場合の分割であるが、正規表現で年は 1 から 4 桁、月は 1 から 2 桁、日も 1 から 2 桁の範囲を持たせているため下記のように 0 埋めされた日付でおいても問題無く分割して配列に格納される。
<?php $setDate = '2021/07/08'; $dateArr = array(); preg_match( "/([0-9]{1,4})\/([0-9]{1,2})\/([0-9]{1,2})/", $setDate, $dateArr ); echo $dateArr[0] . "\n"; // 2021/07/08 が表示 echo $dateArr[1] . "\n"; // 2021 が表示 echo $dateArr[2] . "\n"; // 07 が表示 echo $dateArr[3] . "\n"; // 08 が表示 ?>
関連記事
Windows に Python をインストールして実行する方法
プログラム
Python は AI やディープラーニングで利用されるプログラム言語で IT エンジニアの取得したいスキルの 1 つに挙げられており、まずは簡単な動作確認するために Python を Windows にインストールして実行する方法を紹介する。
内部結合(INNER JOIN)と外部結合(LEFT/RIGHT JOIN)の違い
プログラム
データベースの操作で結合(リレーション)と呼ばれる 1 回の参照で複数のテーブルの情報を合わせて表示する機能があり、結合方法として用意されている内部結合(INNER JOIN)と外部結合(OUTER JOIN)の使い方と違いについて解説する。
Mapbox の地図データをサイト内に埋め込む基本的な使い方
プログラム
ウェブサイトやブログに地図を埋め込む場合に無償または有償で提供されている地図サービスを利用できるが、いくつかある地図サービスの中から Mapbox の地図データをサイト内に埋め込む方法について紹介する。
Google Map API を使ってサイトに地図を埋め込む方法とキーの取得
プログラム
ウェブサイトやブログに地図を埋め込む際に無償または有償で公開されている地図サービスを利用することができるが、その中で Google Map をウェブサイトに埋め込む方法と利用にあたり必要なキーの取得について紹介する。
PHP で「Non-static method *** should not be called statically」が出る場合の対応方法
プログラム
PHP を利用しているとエラーログ等に「Non-static method *** should not be called statically」が表示されることがあり、このエラーが出る原因と対応方法について紹介する。