DATETIME型の値をPHP上でUNIX TIMESTAMP値に変換する方法

追記:この記事に掲載されている関数を使うよりも、PHPに標準で備わっているstrtotime()関数を使ったほうがより簡単に実現できます。 参考記事はこちら

あんまり需要がないかもしれませんが、ここに辿りついて来た方のために掲載しておきます。

引数が正当な日付かどうかのチェックは事前にお願いしますm(_ _ )m

/**
 * DATETIME形式の値をUNIX TIMESTAMP値に変換
 *
 * @param string $datetime DATETIME値
 * @return integer DATETIME型じゃなければ0
 */
function datetime2unixtime($datetime) {
	$regex = "/(d{4})-(d{2})-(d{2}) (d{2}):(d{2}):(d{2})/";
	if (preg_match($regex, $datetime, $m)) {
		array_walk($m, 'intval');
		return mktime($m[4],$m[5],$m[6],$m[2],$m[3],$m[1]);
	} else {
		return 0;
	}
}

UNIX TIMESTAMP値をDATETIME値に変換

ついでなので、UNIX TIMESTAMP値をDATETIME値に変換する方法も載せておきますね。

/**
 * UNIX TIMESTAMP形式の値をDATETIME値に変換
 *
 * @param integer $timestamp UNIX TIMESTAMP値
 * @return string
 */
function unixtime2datetime($timestamp) {
	if (is_int($timestamp)) {
		return date('Y-m-d H:i:s', $timestamp);
	} else {
		return '';
	}
}

このページをシェアする

2009-04-24