MySQLクエリの一部として2010-09-17
の形式で返された日付があります。
変数$ Date2から$ Date5を次のように設定します。
$Date2 = $Date + 1
$Date3 = $Date + 2
等..
2010-09-18
、2010-09-19
などを返すように...
私が試してみました
date('Y-m-d', strtotime($Date. ' + 1 day'))
しかし、これは私に$Date
の前の日付を与えます。
自分のDatesを 'Y-m-d'の形式で他のクエリで使用できるようにする正しい方法は何ですか?
あなたがしなければならないのは、このようにdays
の代わりにday
を使うことです:
<?php
$Date = "2010-09-17";
echo date('Y-m-d', strtotime($Date. ' + 1 days'));
echo date('Y-m-d', strtotime($Date. ' + 2 days'));
?>
そしてそれは正しく出力されます。
2010-09-18
2010-09-19
PHP 5.3を使用している場合は、 DateTime
オブジェクトとその add
メソッドを使用できます。
$Date1 = '2010-09-17';
$date = new DateTime($Date1);
$date->add(new DateInterval('P1D')); // P1D means a period of 1 day
$Date2 = $date->format('Y-m-d');
DateInterval
constructor マニュアルページを見て、あなたの日付に追加する他のピリオドの作り方を見てください(2日は'P2D'
、3は'P3D'
など)。
PHP 5.3がなくても、strtotime
を使った方法で使えるはずです(私はテストしましたが、5.1.6と5.2.10の両方で動作します)。
$Date1 = '2010-09-17';
$Date2 = date('Y-m-d', strtotime($Date1 . " + 1 day"));
// var_dump($Date2) returns "2010-09-18"
PHP 5.2以降では、DateTimeオブジェクトでmodifyを使用できます。
http://php.net/manual/en/datetime.modify.php
$Date1 = '2010-09-17';
$date = new DateTime($Date1);
$date->modify('+1 day');
$Date2 = $date->format('Y-m-d');
月を追加するときには注意してください。
これは日付の変更を説明するための小さな断片です。
$date = date("Y-m-d");
//increment 2 days
$mod_date = strtotime($date."+ 2 days");
echo date("Y-m-d",$mod_date) . "\n";
//decrement 2 days
$mod_date = strtotime($date."- 2 days");
echo date("Y-m-d",$mod_date) . "\n";
//increment 1 month
$mod_date = strtotime($date."+ 1 months");
echo date("Y-m-d",$mod_date) . "\n";
//increment 1 year
$mod_date = strtotime($date."+ 1 years");
echo date("Y-m-d",$mod_date) . "\n";
次の形式も使用できます
strtotime("-3 days", time());
strtotime("+1 day", strtotime($date));
このようにして変更を積み重ねることができます。
strtotime("+1 day", strtotime("+1 year", strtotime($date)));
このアプローチと他の答えのアプローチとの違いに注意してください。値+1 day
と<timestamp>
を連結する代わりに、タイムスタンプをstrtotime
の2番目のパラメータとして渡すことができます。
日数に変数を使用する
$myDate = "2014-01-16";
$nDays = 16;
$newDate = strtotime($myDate . '+ '.$nDays.'days');
echo newDate('d/m/Y', $soma); //format new date
これがあなたのクエリに対する最も簡単な解決策です。
$date=date_create("2013-03-15"); // or your date string
date_add($date,date_interval_create_from_date_string("40 days"));// add number of days
echo date_format($date,"Y-m-d"); //set date format of the result
これを解決する簡単な方法があります。
<?php
$date = "2015-11-17";
echo date('Y-m-d', strtotime($date. ' + 5 days'));
?>
出力は以下のようになります。
2015-11-22
ここから解決策が見つかりました - PHPで日付を日付に追加する方法
すべてが以下のコードを使用する必要があります。
$nday = time() + ( 24 * 60 * 60);
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Day: '. date('Y-m-d', $nday) ."\n";