• 締切済み

朝5時を29時と表示したい

MYSQLかPHPで朝5時を29時と表示を変更したいとと思っています。 朝5時から翌日朝4時59分までを1日としたいので、 たとえば、3月3日朝5時から翌日の3月4日朝4時59分までを3月3日と計算したいと思っています。 何かよい方法はございますでしょうか。

みんなの回答

  • honoka69
  • ベストアンサー率50% (6/12)
回答No.5

No.4の方のご回答を受けて時間のずれが無いものに修正しておきます。 すべてに適用しないと時間のずれが生じる可能性がありましたね。 すいません。 <?php //時間を5時間ずらす $changeTime = 5; $timeStamp = time(); $m = intval ( date ( "m" , $timeStamp - ( 60 * 60 * $changeTime ) ) ); $d = intval ( date ( "d" , $timeStamp - ( 60 * 60 * $changeTime ) ) ); $h = intval ( date ( "H" ) , $timeStamp ); $i = intval ( date ( "i" ) , $timeStamp ); if ( $h <= 5 ) { $h+= 24; } //画面出力 print $m.'月'.$d.'日'.$h.'時'.$i.'分'; ?>

  • dell_OK
  • ベストアンサー率13% (766/5721)
回答No.4

No.3のご回答にある時差(日付変更時刻)調整をする方法を、私はおすすめします。 No.3のご回答を一部変更した方がいいかも知れません。 $time = time (); $m = intval ( date ( "m" , $time - ( 60 * 60 * $changeTime ) ) ); $d = intval ( date ( "d" , $time - ( 60 * 60 * $changeTime ) ) ); time()の取得が2回行われているので、このタイミングで秒が進み取得した日時に誤差が出て、$mと$dに不一致が発生するような気がするので。

  • honoka69
  • ベストアンサー率50% (6/12)
回答No.3

こんな感じでどうでしょうか? 細かい所は調節してください。 <?php //時間を5時間ずらす $changeTime = 5; $m = intval ( date ( "m" , time () - ( 60 * 60 * $changeTime ) ) ); $d = intval ( date ( "d" , time () - ( 60 * 60 * $changeTime ) ) ); $h = intval ( date ( "H" ) ); $i = intval ( date ( "i" ) ); if ( $h <= 5 ) { $h+= 24; } //画面出力 print $m.'月'.$d.'日'.$h.'時'.$i.'分'; ?>

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.2

0~4時の間だけ時間を+24して、日付を前日にするだけでは?

noname#96388
noname#96388
回答No.1

一生懸命考えて改良してください。 私は要りません。

is_rive
質問者

お礼

みなさまご教授ありがとうございます。 時を24進数を10進数、分を60進数を10進数へ変換したあとに 計算する関数と、表示用の関数を複数つくりました。 若干、計算結果に誤差がでますが、丸める桁数などを調整し 動作に問題なく動いております。 ありがとうございました。