2016-08-05 9 views
0

MySQLからUNIXTIMEスタンプが取得されています。これを今のところ比較したいと思います。 xx秒前のように。PHPのUNIXTIMEとMySQLの比較

私は全く見てもわかりません、シンプルなGoogle検索は私を助けません。

正しい方向へのプッシュは本当に感謝しています!

答えて

1

PHPでtime()を使用して、現在のUNIXタイムスタンプ(0:00:00 1970-01-01 GMTからの秒数)を取得できます。

単純な減算を使用して比較することができます。ここで、$mysqltimestampはMySQLのタイムスタンプです。

$elapsedTimeInSeconds = abs($mysqltimestamp - time()); 

あなたも直接MySQLデータベースの差分を計算することができますPHPを使用した以外にも(http://dev.mysql.com/doc/en/date-and-time-functions.htmlを参照)、これも可能で、タイムゾーンの問題を防ぐことができます。 PHPで

select (timestampcol - UNIX_TIMESTAMP()) as timetiff FROM yourtable 
+0

これは悪い習慣です。 –

+0

@VasilShaddixより良いアプローチですか? – MrTux

+0

私の答えを見てください –

0

使用time()

http://php.net/manual/en/function.time.php

この方法は、UNIXタイムスタンプとして、現在の時刻を返します。

あなたが今、データベースからの時間間隔を秒を得ることができ、次のコードで

$time = time(); 
$difference = $time - $database_time; 
+0

これは悪い習慣です。 –

0

良い練習がmysqlの時間にphpの時間を比較することではありません。

はmysql時間で作業しようとしている場合は、MySQLサーバでの現在のタイムスタンプのための1つの以上の問合せを行い、その後のような何かをする必要があります。

MySQLサーバをにすることができ

$diff = $mysqlCurrentTimestamp - $mysqlTimestamp;

別のタイムゾーン、あなたのPHPサーバー。 phpからの時間だけで作業する方が良いです。なぜなら、操作が簡単だからです。

+0

UNIXタイムスタンプは、タイムゾーンとは独立していなければなりません。0:00:00からの秒数をカウントするためです。1970-01-01 GMT – MrTux

+0

タイムスタンプの作成方法によって異なります。日付/時刻の列があり、あなたは何が起こっているのかをmysqlサーバに知らないのです。 –

+0

UNIX - タイムスタンプはGMTタイムゾーンとして定義されています。非常に間違ったことを実装した人以外は違いはありません。 – Bobby