web-dev-qa-db-ja.com

PHPで日付をインクリメントする最も簡単な方法は?

_"2007-02-28"_という文字列が入っているとします。これを_"2007-03-01"_に変換するために書くことができる最も簡単なコードは何ですか?今はstrtotime()を使用し、_24*60*60_を追加してからdate()を使用していますが、よりクリーンでシンプルな、またはもっと賢い方法があるのではないかと思っていますそれ。

37
davr

きれいな方法isを使用してstrtotime()

$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);

2007-03-01をお届けします

78
Ólafur Waage

86400を追加する方がよりクリーンでシンプルです。:)

ハイテクの方法は次のとおりです。

$date = new DateTime($input_date);
$date->modify('+1 day');
echo $date->format('Y-m-d');

しかし、明日を見つけるのではなく、たとえば、日付に一連の変換を実行している場合、それは実際にはわずかに価値があります。

31
chaos

Strtotime内で追加を行うことができます。

 $today="2007-02-28";
 $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
17
Paul Dixon

別の方法は、関数mktime()を使用することです。とても便利な機能です...

_$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));
_

しかし、strtotime()はそのような状況でより良いと思います...

6
Bajlo

最も簡単な方法...

echo date('Y-m-d',strtotime("+1 day"));    //from today

または指定された日付から...

echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
5

こんにちは、フランス人の場合は特にこれを試してみてください

$date = date('l j F Y');
#increment the date
$date2 = date('l j F Y', strtotime("+7 day"));

フランス語に翻訳するには、setlocale()関数または以下の関数を使用できます。

function fr_date($date){

    $date = explode(' ', $date);

    $date = str_replace('Monday','Lundi',$date);
    $date = str_replace('Tuesday','Mardi',$date);
    $date = str_replace('Wednesday','Mercredi',$date);
    $date = str_replace('Thursday','Jeudi',$date);
    $date = str_replace('Friday','Vendredi',$date);
    $date = str_replace('Saturday','Samedi',$date);
    $date = str_replace('Sunday','Dimanche',$date);

    $date = str_replace('January','Janvier',$date);
    $date = str_replace('February','Février',$date);
    $date = str_replace('March','Mars',$date);
    $date = str_replace('April','Avril',$date);
    $date = str_replace('May','Mai',$date);
    $date = str_replace('June','Juin',$date);
    $date = str_replace('July','Juillet',$date);
    $date = str_replace('August','Août',$date);
    $date = str_replace('September','Septembre',$date);
    $date = str_replace('October','Octobre',$date);
    $date = str_replace('November','Novembre',$date);
    $date = str_replace('December','Décembre',$date);

    $date = implode(' ',$date);
    return $date;

}
0
Aominé
$your_date = strtotime("1month", strtotime(date("Y-m-d")));
 $new_date = date("Y-m-d", $your_date++);