web-dev-qa-db-ja.com

日時からUnixへのタイムスタンプ

PHP関数を使用して、形式0000-00-00 00:00:00(datetimesql)の日付をUNIXタイムスタンプに変換する人はいますか?

14
bartek

PHP 5.2でこれを行うには、次のようにします。

$datetime = new DateTime();
echo $datetime->format('U');

PHP 5.3の時点で、これを行うための新しい方法は次のとおりです。

$datetime = new DateTime();
echo $datetime->getTimestamp();
30
John Conde

この質問にSQLのタグを付けた場合の別のオプション:MySQL関数FROM_UNIXTIMEおよびUNIX_TIMESTAMP-> MySQLマニュアル

 SELECT UNIX_TIMESTAMP(datetime_column)FROM table 

これは通常、PHP関数呼び出しよりも高速です。

24
wvanbergen

@ bartek-ご指摘のとおり、PHPの strtotime 関数はこれに最適です。 「tomorrow」や「+ 5months」などの文字列を含む、最も一般的な日付形式を処理できます。

9
ceejayoz

私はあなたのための解決策をここに持っています:

/* From MySQL datetime to Unix Timestamp 2003-12-30 23:30:59 -> 1072834230 */
function convertMysqlDateTimeToUnixTimeStamp($date) {
    $yr=strval(substr($date,0,4));
    $mo=strval(substr($date,5,2));
    $da=strval(substr($date,8,2));
    $hr=strval(substr($date,11,2));
    $mi=strval(substr($date,14,2));
    $se=strval(substr($date,17,2));
    return mktime($hr,$mi,$se,$mo,$da,$yr);
}
5
deepcell

strptime()を使用して時間を解析し、構造化配列に変換します。

次に、その結​​果をmktime()関数に渡して、UNIXタイムスタンプを取得します。

5
Alnitak