2017-11-18 16 views
0

私はすでに同じ問題で数時間を費やしています: 私のMySQLデータベースにいくつかの値を保存しました。フィールドのタイプはTIMEです。 通常I出力このPHPで負のMySQLの時間値を出力

echo date("H:i",strtotime($time)) 

のような私の時間値は、通常、これは正常に動作しますが、今の例として、負の値とゼロ値を持ついくつかの問題があります。

04:12:00 -> will output 04:12 -> fine 
-08:18:00 -> will output 01:00 -> why? 
00:00:00 -> will output 01:00 -> why? 
+0

にしたい場合は00時間

、 'date_createを使用してみてください'と' date_format'を使用します。これにより、柔軟性が向上します。 –

答えて

0

Time !== Durationは全くそのようなことはありません負の時間として...最後に午前2時に目覚まし時計を設定したのはいつですか?負の時間は、おそらく00:00:00が、私はのstrtotime()はUnixタイムスタンプベースの時間(00:00:00木曜日1、1970年1月にデフォルト設定されている疑いがあると思い、01:00を与える理由については00:00

として扱われています)、およびタイムゾーンの設定が+1であること:あなたがPHPで日付と時刻を操作するには、PHPでの期間で動作するDateTimeオブジェクトを見て、DateInterval

+0

ありがとう、これは理にかなっています:-)!たとえば、2つのタイムスタンプの間の時間を秒単位で計算し、INTEGERフィールドに格納することをお勧めしますか? – dida110

+0

これはより合理的なアプローチになります。実際には[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations)の期間を文字列として保存する –