「指定した日の○○ヶ月前の月始めの日」
を取得したい。こんなかんじに翻訳してみました。
PHP DateTimeクラスは便利ですね。
$foo = (指定した日)
$bar = (○○ヶ月前)
$dt = new DateTime($foo);
// 指定した日の$barヶ月前
$dt->modify(-($bar) - 1) . 'month'); ……(a)
// その月の月始の日
$dt->modify('first day of this month'); ……(b)
$dst = $dt->format('Y-m-d');
すると、
$foo に 1/31 などを指定したときは思ったように動作しないことがあります。
(a)の前に一旦(b)をはさんでおくとOKですね。
マニュアルにもありました。
http://php.net/manual/ja/datetime.modify.php
月始の日は常に”1”というのはさておき・・・(^^;
0 件のコメント:
コメントを投稿