問題 × 解決策

PHPで年月日の文字列(〇年〇月〇日)を日付の形式に変換する

  • 2020年05月24日
  • PHP

問題

PHPで年月日の文字列(〇年〇月〇日)を日付の形式に変換するには?

解決策

  1. 「preg_match」を使用し、年月日を取り除き、各数値を配列。
  2. 「sprintf」を使用し、年は4桁、月は2桁、日は2桁になるように、各値に0埋めを行う。

 

「〇年〇月〇日」を日付の形式に変換

PHPで年月日の文字列(〇年〇月〇日)を再び活用することができると、さらに汎用性が広がります。
今回は、PHPで年月日の文字列(〇年〇月〇日)を日付の形式に変換する記述例をご紹介します。

年月日を取り除き、各数値を配列として取得する。

「preg_match」を使用し、年月日を取り除き、各数値を配列として取得します。

preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", '〇年〇月〇日の値', $data );

例:「2020年5月24日」という文字列の場合の配列「$data」の中身

データ 場所
$data[1] 2020
$data[2] 5
$data[3] 24

0埋めを行う。

「sprintf」を使用し、年は4桁、月は2桁、日は2桁になるように、各値に0埋めを行います。

$postdate = sprintf( "%04.4d%02.2d%02.2d", $data[1], $data[2], $data[3] );

「sprintf」の第一引数の記述例

第一引数 内容 例:1の変更後
%02d 2桁になるように0埋めする。 1 → 01
%03d 3桁になるように0埋めする。 1 → 001
%04d 4桁になるように0埋めする。 1 → 0001

参照

以下のサイトが、より詳しく解説してくれています。

【[PHP]年月日の文字が入った日付文字列を,YYYYMMDDに変換する(2012年1月31日 -> 20120131) 】
http://nanoappli.com/blog/archives/3041

【PHPで数字の0埋めをする2つの方法 – sprintf関数とstr_pad関数】
https://wp.tech-style.info/archives/582

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ten + nineteen =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧