• ベストアンサー

指定の日付の何時間後

DBから持ってきた日付(例:2008/06/23 5:30)の6時間後を作り変数に格納したいのですがよいやり方はありませんか。 strtotime()関数を使ってみてもうまくいきません。 $rokujikango = date("y/m/d G:i",strtotime('+6 hour',$timeFrimDb)); としてもうまくいかないので困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

こちらの環境では普通にいけますが・・・まぁしょうがないですね こんな感じでやってみるとかどうでしょ? <? $str="2008/04/14 03:31"; preg_match("/^(\d{4}?)\/(\d{2}?)\/(\d{2}?) (\d{2}?):(\d{2}?)$/",$str,$matches); $str=date("Y/m/d G:i",mktime($matches[4]+6,$matches[5],0,$matches[2],$matches[3],$matches[1])); print $str; ?>

arigato39s
質問者

お礼

うまくいきました。 ソースの内容は理解していませんがw じっくり読んでみます。 ありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

<? $str="2008/06/23 5:30"; $time=strtotime($str.'+6 hour'); print date("Y/m/d G:i",$time); ?>

arigato39s
質問者

補足

試したところ、6時間後にはなったのですが、年と月も変わってしまい うまくいきません。(2008/04/14 03:31→2014/08/04 09:31) strtotime関数にyearを0に指定しても変わらず、試しに-6にしてみると2008年となります。 <? $str="2008/04/14 03:31"; $time=strtotime($str.'+6 hour'); print date("Y/m/d G:i",$time); ?>

関連するQ&A