日付を含む$effectiveDate
という変数2012-03-26があります。
この日付に3か月を追加しようとしていますが、失敗しました。
ここに私が試したものがあります:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
そして
$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");
私は何を間違えていますか?どちらのコードも機能しませんでした。
これに変更すると、予想される形式が得られます。
$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));
「うまくいかなかった」とは、フォーマットされた日付の代わりにタイムスタンプを提供していることを意味すると思います。
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp
echo date('Y-m-d',$effectiveDate); // formatted version
この答えは、まさにこの質問に対するものではありません。ただし、この質問は、日付から期間を追加/差し引く方法を引き続き検索できるため、これを追加します。
$date = new DateTime('now');
$date->modify('+3 month'); // or you can use '-90 day' for deduct
$date = $date->format('Y-m-d h:i:s');
echo $date;
Tchoupi's 次のようにstrtotime()の引数を連結することにより、回答を少し冗長にすることができます。
$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months") );
(これは魔法の実装の詳細に依存しますが、当然のように不信である場合はいつでも詳細を見ることができます。)
日付を読み取り可能な値に変換する必要があります。 strftime()またはdate()を使用できます。
これを試して:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
$effectiveDate = strftime ( '%Y-%m-%d' , $effectiveDate );
echo $effectiveDate;
これは動作するはずです。あなたが試してみたいかもしれないローカライズに使用できるので、私はstrftimeを使うのが好きです。
N番目の日、月、年を追加
$n = 2;
for ($i = 0; $i <= $n; $i++){
$d = strtotime("$i days");
$x = strtotime("$i month");
$y = strtotime("$i year");
echo "Dates : ".$dates = date('d M Y', "+$d days");
echo "<br>";
echo "Months : ".$months = date('M Y', "+$x months");
echo '<br>';
echo "Years : ".$years = date('Y', "+$y years");
echo '<br>';
}
以下が動作するはずです、これを試してください:
$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d")));
echo $time = date("y/m/d", $effectiveDate);
PHP Simple LibrariesのsimpleDateクラスを使用できます。
include('../code/simpleDate.php');
$date = new simpleDate();
echo $date->set($effectiveDate)->addMonth(3)->get();
ライブラリチュートリアルはこちら を確認してください。
以下は動作するはずです
$d = strtotime("+1 months",strtotime("2015-05-25"));
echo date("Y-m-d",$d); // This will print **2015-06-25**
以下は機能するはずですが、フォーマットを変更する必要がある場合があります。
echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust)));