0

PHPのdate()関数を使用しているときに、MySQLのfetch_arrayからAM時間の値を変換する際に問題が発生しました。以下の停止時刻が11:00AMであるはずの7:00PMとして印刷されている理由がわかりません。何か案は?どんな助けでも大歓迎です!

<?php
$mysql_output = array('start' => '19:00:00','stop' => '11:00:00');

$start_time = date('g:iA',$mysql_output['start']);
$stop_time = date('g:iA',$mysql_output['stop']);

echo "<p>start_time: $start_time</p>";
echo "<p>stop_time: $stop_time</p>";
?>

結果はAM時間を正しく変換しません。stop_timeの11:00AMを読み取る必要があります:

start_time: 7:00PM
stop_time: 7:00PM
4

3 に答える 3

7

このdate()関数は、文字列datetimestampではなく、Unixタイムスタンプを取ります。最初にMySQLのdatetimestampを通過させる必要がありますstrtotime()

$start_time = date('g:iA', strtotime($mysql_output['start']));
$stop_time = date('g:iA', strtotime($mysql_output['stop']));
于 2012-08-09T01:54:58.070 に答える
1

mysql に変換させたい場合は、DATE_FORMAT( )関数を使用してください。

SQLFiddle デモ

于 2012-08-09T01:58:58.353 に答える
0

日付関数がデータを誤って解釈しています。

最初に時間オブジェクトを作成してから、それをパラメータとして日付に渡す必要があります。

于 2012-08-09T01:55:29.020 に答える