PHP で文字列表現の日付をタイムスタンプに変換する方法

Y-m-d H:i:s の形式の日付をタイムスタンプを取得する際は以下のようにやってはいけません。ちゃんと関数があるのです!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function date_array($date_str = '') {
   if($date_str == '')
     $date_str = date("Y-m-d H:i:s");
   $date_str = explode(' ', $date_str);
   $date['date'] = explode('-', $date_str[0]);
   $date['time'] = explode(':', $date_str[1]);
   $date['year'] = $date['date'][0];
   $date['month'] = $date['date'][1];
   $date['day'] = $date['date'][2];
   $date['hour'] = $date['time'][0];
   $date['minute'] = $date['time'][1];
   $date['second'] = $date['time'][2];
   return $date;
}
 
$date = date_array($date('Y-m-d H:i:s');
echo mktime($date['hour'], $date['minute'], $date['second'], $date['month'], $date['day'], $date['year']);
?>

こうなのです!

1
echo strtotime(date('Y-m-d H:i:s'));

アホだ。最近まで前者の方法でやってました。
初めて PHP 勉強したときは後者だったんですが、まさか退化するとは。

コメント

コメントは受け付けていません。