22

多くの例は、この日に日を追加することです。しかし、出発日が違う場合はどうすればいいですか?

例(機能しません):

$day='2010-01-23';

// add 7 days to the date above
$NewDate= Date('$day', strtotime("+7 days"));
echo $NewDate;

上記の例は機能しません。日付の代わりに別のものを入れて開始日を変更するにはどうすればよいですか?

4

3 に答える 3

50

コードに基づく非常に基本的な修正の場合:

$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 オブジェクトで日付を変更できます。ドキュメントは次のとおりです。

于 2009-12-17T19:01:00.237 に答える
15
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day)));
于 2009-12-17T19:00:22.780 に答える
2

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;
}

?> 
于 2009-12-17T18:58:54.953 に答える