DATETIME型からTIMESTAMP型へPHPで変換する関数

またまたPHPネタですが、お仕事中に思いついたので書きますよ。

PHPでMySQLから取得したDATETIME型の日付文字列を、時間の計算などに使えるTIMESTAMP(タイムスタンプ)型に変換するための関数です。

PHPではmktime()という関数がタイムスタンプを取得するのに便利なんですけど、元の材料が日付の文字だけだとすぐ変換できないんですよね。

で、strtotime()という便利な関数があるのですが、すっかり存在を忘れてて自作関数を作っちゃいました。 需要は全然ないですが、参考に見てみてください。

ちなみに、strtotime()を使うと簡単に変換ができてしまいます。

$timestamp = strtotime("2010-07-15 19:12:40");

datetime2timestamp

はい、では需要がない自作関数の紹介です。

/**
* DATETIME型文字列をタイムスタンプに変換
*
* @param string $datetime_string DATETIME型の文字列
* @return int
*/
function datetime2timestamp($datetime_string) {
    $matches = array();
    preg_match("/^(d+)-(d+)-(d+) (d+):(d+):(d+)$/", $datetime_string, $matches);
    return mktime(intval($matches[4]),intval($matches[5]),intval($matches[6]),intval($matches[2]),intval($matches[3]),intval($matches[1]));
}

正規表現を知ってるといろいろ便利だな~、ってことで。

このページをシェアする

コメントを残す

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

2010-07-15