2012-02-18 22 views
3

PHPで現在の日付/時刻+ 60日を取得してMYSQLに保存するのは苦労しています。PHP + 60日間MYSQL DATETIME

私は次のようにして、私のPHPコードに挿入MYSQLで直接それを行う上で解決しなければならなかった

DATE_ADD(NOW(), INTERVAL 60 DAY) 

問題は、私はPHPであればelse文を実行し、追加したいということです現在の日付時刻と異なる日数。

編集:ここ

私が使用していたPHPコードである:

$ expirydate =日付( "Y-M-D")。 //現在の日付

$ expirydate = strtotime(date( "Y-m-d"、strtotime($ expirydate))。 "+60 days");

次に、MYSQLのexpiry_date DATETIMEフィールドに$ expirydateを挿入しました。

結果EXPIRY_DATEフィールドでは、PHPで試してみました何0000-00-00 00:00:00

+0

もっとコードを、してください? – gremo

+0

'strtotime'は文字列ではなく整数を返します。 – Timur

答えて

2

私はこのようなものを使用します。

$date = date ('Y-m-d'); 
$newdate = strtotime ('+60 days' , strtotime ($date)) ; 
$newdate = date ('Y-m-d' , $newdate); 
+0

日時フィールドに日付形式を格納する場合、日付形式はY-m-dになりますか?それは空の時間値を格納していますか? – user1052096

+0

ありがとう、私はこれを試しました、上の例では空の時間をdatetimeに格納しますが、Y-m-dからY-m-dに変更します。 – user1052096

+0

私は、時間を追加する場合は、はい、私は助けてうれしいです、これは正しい方法です:) – Giannis

3
$date = new DateTime(); 
$date->add(new DateInterval('P60D')); 
$date->format('Y-m-d'); 

または

$date = new DateTime(); 
$date->modify('+60 days'); 
$date->format('Y-m-d'); 
+0

私はこれらを試してから、$ dateをmy mysqlテーブルに挿入しました。それは "0000-00-00 00:00:00"でした。私のmysqlフィールドはDATETIMEです。他のアイデア? – user1052096

+0

私が試したPHPコードを表示するためにオリジナルの質問を編集しました。すべて0の – user1052096

2

に等しいですか?

一つの方法は次のとおりです。

$days = 60; 
$time = time() + $days * 86400; 
echo date('r', $time); 
+0

の同じ誤った結果を得ました。上記の編集質問を参照してください。 – user1052096

+0

ありがとう、これはうまくいきました。 「r」は「Ymd H:i:s」ですが、現時点では60日プラス余分な時間が加算されています。 – user1052096

+0

余分な時間は、夏時間の移行のためです。 – Umbrella

1

あなたが具体的かつより多くのPHPコードを表示する必要があります。とにかく、それはNOWにPHPでの日数の可変数を追加することは難しいことではありません。

$days = 6; 
$now = new DateTime(); 
$interval = new DateInterval("P$daysD"); 

// Clone!!! 
$dateNext = clone $now; 
$dateNext->add($interval); 

// Cloning is necessary if you want to use it in a loop 
// because add will modify original object (thus $now) 
for($i = 1; $i <= 10; $i++) 
{ 
    $modified = clone $now; 

    // Add $i days 
    $modified->add(new DateInterval("P$iD")); 

    // Store in database 
}