多くの例は、この日に日を追加することに関するものです。しかし、私が別のスターディング日を持っている場合、それをどのように行うのですか?
例(機能しません):
$day='2010-01-23';
// add 7 days to the date above
$NewDate= Date('$day', strtotime("+7 days"));
echo $NewDate;
上記の例は機能しません。日付の代わりに何か他のものを置くことによって、どのようにスターディング日を変更する必要がありますか?
コードに基づく非常に基本的な修正の場合:
_$day='2010-01-23';
// add 7 days to the date above
$NewDate = date('Y-m-d', strtotime($day . " +7 days"));
echo $NewDate;
_
PHP 5.3+を使用している場合は、非常に便利な新しいDateTimeライブラリを使用できます。
_$day = '2010-01-23';
// add 7 days to the date above
$NewDate = new DateTime($day);
$NewDate->add(new DateInterval('P7D');
echo $NewDate->format('Y-m-d');
_
DateTime
は非常に強力なので、自分で使用するように完全に切り替えました。インスタンス化するときにタイムゾーンを簡単に指定することもできます。つまり、new DateTime($time, new DateTimeZone('UTC'))
です。 add()
メソッドとsub()
メソッドを使用して、DateIntervalオブジェクトで日付を変更できます。ドキュメントは次のとおりです。
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day)));
Php.comからbinupillai2003
<?php
/*
Add day/week/month to a particular date
@param1 yyyy-mm-dd
@param1 integer
by Binu V Pillai on 2009-12-17
*/
function addDate($date,$day)//add days
{
$sum = strtotime(date("Y-m-d", strtotime("$date")) . " +$day days");
$dateTo=date('Y-m-d',$sum);
return $dateTo;
}
?>