私は現在の日付から6ヶ月を取得しようとしています。私が使用して試したPHPで6ヶ月追加
:
date('d', strtotime('+6 month', time()));
しかし、動作するようには思えないが、常に01
返します。これを行うより良い方法はありますか?
ありがとうございました!
私は現在の日付から6ヶ月を取得しようとしています。私が使用して試したPHPで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');
完璧に動作します、ありがとう! – dzm
あなたがまだのstrtotimeを使用したい場合やDateTime()オブジェクトとは対照的に、date関数は、次のように動作します。
date('d', strtotime('+6 months'));
あなたはそれがデフォルトであるとして、のstrtotimeにtime()
を渡す必要はありません。
それとは別に、あなたのアプローチは正しいです - あなたは月のdate('m')
(日出しされている)とないdate('d')
を取るので、echo date('m', strtotime('+6 month'));
がすべきことを除いて。
しかし、私はDateTime
方法を使用することをお勧めします。 DateTime
には、 "古い"日付関数に比べていくつかの利点があります。たとえば、UNIXビッグバンが32ビット整数に収まりきらない時から秒が経過すると動作しなくなります。
あなたはDateInterval
クラスと一緒にDateTime
クラスを使用することができます。
<?php
$date = new DateTime();
$date->add(new DateInterval('P6M'));
echo $date->format('d M Y');
あなたはsimpleDateクラスを使用することができます。
include('../code/simpleDate.php');
$date = new simpleDate();
echo $date->now()->addMonth(6)->get();
は( `、余談としてのstrtotimeをtutorials here.
をチェック) 'は、2番目のパラメータを省略すると、デフォルトで現在の時刻を使用します。また、 'strtotime()'は絶対時間ではないので、月を計算するとは考えていません。日数は月ごとに異なります。 –