勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでdatetime型のデータを年月日時分秒に分割する方法

   2024/01/18  PHP

datetime型を年月日時分秒でそれぞれに分割させたい時に今まではいちいちexplodeで区切った上で一個ずつ変数に入れていっていた。もう少しスマートにできないかと調べたところ良さそうな方法があったのでメモ。

 

今までのやり方

$datetime = '2013-03-21 15:05:59';
$datetime1 = explode(' ', $datetime);
$date = explode('-', $datetime1[0]);
$year = $date[0];
$month = $date[1];
$day = $date[2];

 

新しいやり方

list($year, $month, $day, $hour, $minute, $second) = preg_split('/[-: ]/', $datetime);
var_dump($year, $month, $day, $hour, $minute, $second);
/*
string(4) "2013"
string(2) "03"
string(2) "21"
string(2) "15"
string(2) "05"
string(2) "59"
*/

preg_split関数を用いて正規表現で文字列を分割し配列に入れると。-と:と半角スペースで区切ったものをlistで格納していったら一発だった。

 - PHP

  関連記事

UTF-16にエンコードされている文字列をUTF-8へデコード
UTF-16にエンコードされている文字列をUTF-8へデコード

エンコードされている文字列であまり見かけない感じのものがあった。UTF-8やSh ...

PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法
PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法

PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...

Smartyでテンプレートファイル(tplファイル)を編集しても反映されない
Smartyでテンプレートファイル(tplファイル)を編集しても反映されない

Smartyで作成されたシステムがあり、一部修正でtplファイルを編集したものの ...

PHPで日時のフォーマットをISO 8601型とDateTime型を相互に変換する方法
PHPで日時のフォーマットをISO 8601型とDateTime型を相互に変換する方法

他社のAPI等のレスポンスで日時部分が「YYYY-MM-DDTHH:II:SSZ ...

opauthのTwitterでログインできない際の対応方法
opauthのTwitterでログインできない際の対応方法

opauthを使ったソーシャルログインのシステムにてTwitterでログインでき ...