2

私のmysqlデータベースでタイムスタンプフィールドを取得しました。値は次のとおりです。

2013-01-30 01:15:00
2013-01-30 01:20:00

日付関数を使用して24HOUR:MINUTE形式で印刷しましたが、間違った時刻結果が得られます。

mysql_query('SELECT time FROM locations ORDER BY time ASC');
...
echo "<td>" . date('H:i',$row['time']) . "</td>";

出力は次のとおりです。両方のレコードで00:33、なぜですか?

4

1 に答える 1

5

の2番目のパラメータdate()はUnixタイムスタンプです。

説明

文字列の日付(文字列$ format [、int $ timestamp = time()])

指定された整数のタイムスタンプ、またはタイムスタンプが指定されていない場合は現在の時刻を使用して、指定されたフォーマット文字列に従ってフォーマットされた文字列を返します。つまり、timestampはオプションであり、デフォルトでtime()の値になります。

echo "<td>" . date('H:i', strtotime($row['time'])) . "</td>";

別の解決策は、DateTimeを使用することです。

$datetime = new DateTime($row['time']);
echo $datetime->format('H:i');

// or in PHP5.5+
echo (new DateTime($row['time']))->format('H:i');

参照:

于 2013-01-30T00:44:53.080 に答える