現在の日付から 6 か月後の月を取得しようとしています。
私は使用してみました:
date('d', strtotime('+6 month', time()));
しかし、うまくいかないようで、常に返されます01
。これを行うより良い方法はありますか?
ありがとうございました!
DateTimeを使用すると、はるかに使いやすくなります。
$datetime = new \DateTime();
$datetime->modify('+6 months');
echo $datetime->format('d');
また
$datetime = new \DateTime();
$datetime->add(new DateInterval('P6M'));
echo $datetime->format('d');
またはPHPバージョン5.4以降
echo (new \DateTime())->add(new \DateInterval('P6M'))->format('d');
DateTime() オブジェクトではなく strtotime と date 関数を引き続き使用する場合は、次のようにします。
date('d', strtotime('+6 months'));
DateTime
クラスと組み合わせてクラスを使用できますDateInterval
。
<?php
$date = new DateTime();
$date->add(new DateInterval('P6M'));
echo $date->format('d M Y');
time()
デフォルトであるため、strtotimeに渡す必要はありません。
それとは別に、あなたのアプローチは正しいです-月ではdate('d')
なく(日を出している)取ることを除いて、そうするべきです。date('m')
echo date('m', strtotime('+6 month'));
DateTime
それにもかかわらず、ジョンが述べた方法を使用することをお勧めします。DateTime
「古い」日付関数よりもいくつかの利点があります。たとえば、UNIX ビッグバン以降の秒数が 32 ビット整数に収まらなくなった場合でも動作を停止しません。