Mysql: UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
パラメータなしで呼び出された場合、Unix タイムスタンプ ('1970-01-01 00:00:00' GMT からの秒数) が符号なし整数として返されます。 UNIX_TIMESTAMP() が日付を指定して呼び出された場合、GMT '1970-01-01 00:00:00' からの秒数としてパラメータ値が返されます。 date には、DATE 文字列、DATETIME 文字列、TIMESTAMP、または YYMMDD または YYYMMDD 形式の現地時刻番号を指定できます。
mysql> SELECT UNIX_TIMESTAMP();
-> 882226357
mysql> TIMESTAMP 列で使用すると、この関数は暗黙的な「文字列から Unix タイムスタンプ」への変換を行わずに、内部タイムスタンプ値を直接返します。 UNIX_TIMESTAMP() にオーバーフロー日付を渡すと、0 が返されますが、基本的な範囲チェックのみが実行されることに注意してください (1970 年から 2037 年までの年、01 から 12 までの月、01 から 31 日までの日)。
ここで
FROM_UNIXTIME(unix_timestamp)、FROM_UNIXTIME(unix_timestamp,format)を使用してUNIX_TIMESTAMP()タイムスタンプをフォーマットできます。これにより、'YYYY-MM-DD HH:MM:SS'またはYYYYMMDDHHMMSSフォーマット値が返されます。 unix_timestampパラメータ関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかによって、特定の形式が異なることを示します。
形式が指定されている場合、結果の形式は形式文字列に従って決定されます。 format には、DATE_FORMAT() 関数の入力リストと同じ指定子を含めることができます。 mysql> SELECT FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> 19971004222 30 0
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP() ) ,
-> '%Y %D %M %h:%i:%s %x');
-> '2003 年 8 月 6 日 06:22:58'
php: time()
time -- 現在の Unix タイムスタンプを返します。 Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) から現在時刻までの秒数を返します。
文字通り、これらは同じであり、どちらも Unix エポックから現在までの秒数を返します。
著者は同じサーバーでテストを行ったところ、2 つのサーバーから返される結果が同じであることがわかりました。
mysql で FROM_UNIXTIME( 1156219870 ,'%y-%m-%d' )
を使用し、php で date( "y-m-d",1156219870 ) を使用しても、同じ結果になります。唯一わからないのは、どちらがより早く反応するかということです。しかし、私は依然として php で time() 関数を使用することを好みます。