電子書籍の厳選無料作品が豊富!

phpによってデータベースから取り出した日付に2日プラスして出力したいのですがどうしたら宜しいでしょうか?
ちなみにcakephpによって取り出されているので、
$carlist['Car']['buy_date'] となっており、中には2014-1-1が入っています。

出力が2014-1-3になるようにしたいです。
strtotimeなどいろいろ試しましたが出来ませんでした。
よろしくお願いします

A 回答 (4件)

DateTimeオブジェクト使うときれいにできますよ。



DateTime::add
http://php.net/manual/ja/datetime.add.php

<?php
$date = new DateTime('2014-1-1');
$date->add(new DateInterval('P2D'));
echo $date->format('Y-m-d') . "\n";
?>
    • good
    • 0
この回答へのお礼

To_aru_Userさん
ありがとうございます。
上記と訂正のアドバイスを受け、改めて実行したところ上手く行きました。
マニュアルのことも含め、丁寧なご説明ありがとうございました。

お礼日時:2014/03/07 03:34

訂正: Y-m-d じゃなくて Y-n-j でしたね。



あと一応strtotime関数のマニュアルより...

注意:
この関数を使って日付の足し算や引き算を行うことはおすすめできません。 PHP 5.3 以降なら DateTime::add() や DateTime::sub() を、そして PHP 5.2 なら DateTime::modify() を使いましょう。

他の人の回答を否定するわけではないですが、マニュアルはこちらを推奨しているようです。
    • good
    • 0

まぁ「2014-1-1」が文字列型だとわかっているなら


文字列を連結してstrtotimeするという考えもあります

<?php
$str = '2014-1-1';
echo date('Y-n-j', strtotime("$str +2 day" ));
    • good
    • 0
この回答へのお礼

yambejpさん
ご回答ありがとうございました。
DateTime::addで解決することが出来ました。
またよろしくお願い致します。
本当にありがとうございました。

お礼日時:2014/03/07 03:36

>strtotimeなどいろいろ試しましたが出来ませんでした。



どのように試したのでしょうか(ソースが何も提示されていないのでわかりません)。


>中には2014-1-1が入っています。

date型ならそのまま、文字列型ならstrtotimeで変換して使えばいいと思います。

<?php
$str = '2014-1-1';
echo date('Y-n-j', strtotime('+2 day', strtotime($str)));
    • good
    • 0
この回答へのお礼

agunuzさん
ご指摘通りこれからはソースコードも載せるよう心がけたいと思います。
具体的な例も頂きありがとうございました。
またよろしくお願い致します。

お礼日時:2014/03/07 03:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!