2

これは非常に簡単な解決策があるはずですが、私が試みていることはすべて、エラーまたは間違った結果を与えることです。

MySQLテーブルからデータを取得していますが、時刻はエポック形式でデータベースに保存されています。Webサイトでクエリを実行すると、3672(データベースに表示されているのと同じ番号)と表示されます。date()関数、さまざまなstr *関数、さまざまな算術演算を使用してみましたが、実際の時刻は「1:02」と表示されるはずです。

日付や実際の時刻などを取得しようとしているのではありません。エポックの時間文字列を従来の「H:mm」形式に変換しようとしているだけです。これらはタイムスタンプではなく期間用だからです。

どんな助けでも大歓迎です!

4

1 に答える 1

1

他の人がすでに気付いているように、これは実際には標準のエポック時間ではなく、単に真夜中からの秒数です。

あなたの例を見ると、必要なのは時間と分 (切り上げ) だけです。これにより、次のものが得られます。

$h = (int)($number / 3600);
$m = ceil(($number - $h * 3600) / 60);
$result = sprintf('%d:%02d', $h, $m);

数値を 3600 (秒の場合は 60 * 分の場合は 60) で割ると、時間数が得られます。3672 の例を使用すると、1 になります。

分を取得するには、時間を削除して秒 (72) を取得し、それを 60 で割って分 (1 分 12 秒) を取得します。あなたの例では 1:02 が結果であることを指定しているため、単純に次の上位の整数 (2) を取得できます。

あなたが指定したように、最終結果は1:02です。

于 2013-01-21T05:13:23.503 に答える