• ベストアンサー

秒数の計算

いつもお世話になっております。 PHPの日時から秒数をマイナスして、日付を取得したいと考えております。 2011/07/04 20:15:00 から75秒マイナスして 2011/07/04 20:13:45 というような計算をしたいのですが、どうしたらよろしいでしょうか。 以下のようにしても、秒が変化しません。 date("Y/m/d H:i:s", time() - 75) [環境]  PHP:5.3.6 よろしくご教示お願いいたします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

それであってると思います。 秒が変化しないというのは具体的にはどういう現象ですか?他人が再現確認できる形で提示してください。 たとえば、 echo date("Y/m/d H:i:s"); echo "\n"; echo date("Y/m/d H:i:s", time() - 75) ; echo "\n"; で、同じものが表示されるということ?

wonder_dct
質問者

補足

notnotさん、ご回答ありがとうございます。 説明不足で申し訳ございません。 $now = time(); $sec = 70; /* ここは固定ではなく場合によって変化します */ $at = date("Y-m-d H:i:s", $now - $second); echo "now->" . date("Y-m-d H:i:s", $now) . "<br>"; echo "at->{$at}<br>"; echo "sec->{$sec}<br>"; /* 結果 */ now->2011-07-15 12:30:00 up->2011-07-15 12:28:50 sec->70

その他の回答 (2)

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.3

あっているようですが…。ただ、勘違いでしょうか、計算結果をほったらかしなので「何も変化しない」ように見えているだけかも知れません。 date()は時刻を書式化するだけで、表示まではしません。その結果である「返り値」(戻り値)をどうするのか指示する必要があります。 結果を出力したいなら、他の回答者さまのように echo date(~); またはprint date(~); あるいは変数に格納したいときは $t = date(~); など。 ※戻り値の形式はstring(文字列),array(配列),bool(TRUREまたはFALSE) などいろいろです。 各関数ごとに異なるのでその都度PHPマニュアルで。

wonder_dct
質問者

お礼

JaneDueさん、、ご回答ありがとうございます。 説明不足で申し訳ございません。

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

<?PHP $time="2011/07/04 20:15:00"; print date("Y/m/d H:i:s", strtotime($time) - 75); ?>