現在の日付に日数を追加したい:次のコードを使用しています:
$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");
しかし、適切な日付を取得する代わりに、これを取得しています: 2592000
提案してください。
[php] [date] add
して検索します(検索ボックスなど)。このような質問に対する答えはたくさんあります。
現在の日付に日数を追加したい:次のコードを使用しています:
$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");
しかし、適切な日付を取得する代わりに、これを取得しています: 2592000
提案してください。
[php] [date] add
して検索します(検索ボックスなど)。このような質問に対する答えはたくさんあります。
回答:
これは
echo date('Y-m-d', strtotime("+30 days"));
strtotime
アメリカ英語の日付形式を含む文字列が指定されていることを期待し、その形式をUnixタイムスタンプ(1970年1月1日00:00:00 UTCからの秒数)に解析しようとします。 nowが指定されていない場合は現在の時刻。
ながら date
指定された整数タイムスタンプを使用して、またはタイムスタンプが指定されていない場合は現在の時刻を使用して、指定されたフォーマット文字列に従ってフォーマットされた文字列を返します。
のマニュアルページを参照してください
およびそれらの関数シグネチャ。
strtotime
構成されたタイムゾーンのすべてのDSTが考慮されます。DSTは、次のOPのような場合にのみ問題になります:stackoverflow.com/questions/4066035
これはいいかも
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));
return date("Y-m-d", $date);
}
$date = new DateTime();
$date->modify('+1 week');
print $date->format('Y-m-d H:i:s');
または print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));
$today=date('d-m-Y');
$next_date= date('d-m-Y', strtotime($today. ' + 90 days'));
echo $next_date;
夏時間のために時計が変わると、日数を計算するだけで問題が発生する可能性があることに注意してください。
これを処理する小さなphp関数を次に示します。
function add_days($date, $days) {
$timeStamp = strtotime(date('Y-m-d',$date));
$timeStamp+= 24 * 60 * 60 * $days;
// ...clock change....
if (date("I",$timeStamp) != date("I",$date)) {
if (date("I",$date)=="1") {
// summer to winter, add an hour
$timeStamp+= 60 * 60;
} else {
// summer to winter, deduct an hour
$timeStamp-= 60 * 60;
} // if
} // if
$cur_dat = mktime(0, 0, 0,
date("n", $timeStamp),
date("j", $timeStamp),
date("Y", $timeStamp)
);
return $cur_dat;
}
これは、タイムコードを操作するか、strtotime()を使用して実行できます。strtotimeを使用した例を次に示します。
$ data ['created'] = date( 'Ymd H:i:s'、strtotime( "+ 1 week"));
PHPで構築されたDateTimeクラスを使用できます。「追加」と呼ばれるメソッドがあり、それがどのように使用されるかはマニュアルに完全に示されています:http : //www.php.net/manual/en/datetime.add.php
ただし、PHP 5.3.0が必要です。
シンプルで最高
echo date('Y-m-d H:i:s')."\n";
echo "<br>";
echo date('Y-m-d H:i:s', mktime(date('H'),date('i'),date('s'), date('m'),date('d')+30,date('Y')))."\n";
これを試して
このaddDate()関数を使用して、日、月、または年を加算または減算します(補助関数reformatDate()も必要になります)
/**
* $date self explanatory
* $diff the difference to add or subtract: e.g. '2 days' or '-1 month'
* $format the format for $date
**/
function addDate($date = '', $diff = '', $format = "d/m/Y") {
if (empty($date) || empty($diff))
return false;
$formatedDate = reformatDate($date, $format, $to_format = 'Y-m-d H:i:s');
$newdate = strtotime($diff, strtotime($formatedDate));
return date($format, $newdate);
}
//Aux function
function reformatDate($date, $from_format = 'd/m/Y', $to_format = 'Y-m-d') {
$date_aux = date_create_from_format($from_format, $date);
return date_format($date_aux,$to_format);
}
注:php> = 5.3の場合のみ
次のコードを使用します。
<?php echo date('Y-m-d', strtotime(' + 5 days')); ?>
リファレンスはここから見つかりました-PHPで現在の日付に日数を追加する方法
//Set time zone
date_default_timezone_set("asia/kolkata");
$pastdate='2016-07-20';
$addYear=1;
$addMonth=3;
$addWeek=2;
$addDays=5;
$newdate=date('Y-m-d', strtotime($pastdate.' +'.$addYear.' years +'.$addMonth. ' months +'.$addWeek.' weeks +'.$addDays.' days'));
echo $newdate;
これは古い質問ですが、この方法では多くの状況が発生し、堅牢であるようです。PHP 5.3.0以降が必要です。
$EndDateTime = DateTime::createFromFormat('d/m/Y', "16/07/2017");
$EndDateTime->modify('+6 days');
echo $EndDateTime->format('d/m/Y');
日付文字列には任意のタイプのフォーマットを使用できますが、これは機能します。