- ベストアンサー
秒数の計算
いつもお世話になっております。 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 よろしくご教示お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
それであってると思います。 秒が変化しないというのは具体的にはどういう現象ですか?他人が再現確認できる形で提示してください。 たとえば、 echo date("Y/m/d H:i:s"); echo "\n"; echo date("Y/m/d H:i:s", time() - 75) ; echo "\n"; で、同じものが表示されるということ?
その他の回答 (2)
- JaneDue
- ベストアンサー率75% (263/350)
あっているようですが…。ただ、勘違いでしょうか、計算結果をほったらかしなので「何も変化しない」ように見えているだけかも知れません。 date()は時刻を書式化するだけで、表示まではしません。その結果である「返り値」(戻り値)をどうするのか指示する必要があります。 結果を出力したいなら、他の回答者さまのように echo date(~); またはprint date(~); あるいは変数に格納したいときは $t = date(~); など。 ※戻り値の形式はstring(文字列),array(配列),bool(TRUREまたはFALSE) などいろいろです。 各関数ごとに異なるのでその都度PHPマニュアルで。
お礼
JaneDueさん、、ご回答ありがとうございます。 説明不足で申し訳ございません。
- yambejp
- ベストアンサー率51% (3827/7415)
<?PHP $time="2011/07/04 20:15:00"; print date("Y/m/d H:i:s", strtotime($time) - 75); ?>
補足
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