3

PHPファイルからデータベース値を設定しています。PHPファイルには、UNIXタイムスタンプ値を格納する文字列変数があります。

私が持っているMySqlテーブルには、これらのタイムスタンプ値をタイムスタンプデータ型のログインフィールドに格納する必要があるスキーマがあります。

送ってみた

date('Y-m-d G:i:s', strtotime($userLogin));

私のデータベースに保存されますが、保存されるのは0000-00-00 00:00:00

4

5 に答える 5

2

MySQL には、このためのFROM_UNIXTIME()関数があります。

于 2012-07-11T22:18:00.903 に答える
2

MySQL は、Unix タイムスタンプを MySQL 日付形式に、またはその逆に変換するFROM_UNIXTIME( )および関数を提供します。UNIX_TIMESTAMP( )

例:

$sql = "INSERT INTO yourtable(date, ..., ...) VALUES (FROM_UNIXTIME($yourdate), ..., ...)";
于 2012-07-11T22:18:47.850 に答える
1

strtotime () は、さまざまな日付形式の文字列を UNIX タイムスタンプに変換することを目的としています。文字列がすでにタイムスタンプである場合、 strtotime () に対して意味のあるフォーマットされた日付/時刻のようには見えず、失敗します。

文字列がすでにタイムスタンプである場合は、整数にキャストする以外に何もする必要はありません (厳密に言えば、その手順も必要ありませんが、キャストすると数字以外の文字が取り除かれるので、通常、キャストしても問題ありません)

さらに、MySQL は UNIX タイムスタンプを解析することができます (FROM_UNIXTIME() を使用すると、確認するために調べる必要があると思います)。

于 2012-07-11T22:18:05.373 に答える
0

追加しなければなりませんでした

    $login = date('Y-m-d H:i:s',(int)($userLogin/1000));

そしてそれは働いた...

于 2012-07-11T23:49:46.427 に答える
0

使用する必要のない値を$userLogin保持している場合は、timestampstrtotime()

たとえば、これは動作するはずです -->

$userLogin = time();
date('Y-m-d G:i:s', $userLogin);
于 2012-07-11T22:23:41.353 に答える