ドロップダウンボックスで現在の月と次の3か月を年とともに取得したいのですが、問題は、2012年11月になると最後の月が2013年1月になり、現在の月が2012年12月の場合、次の3か月は次のようになります
2013 年 1 月 2013 年 2 月 2013 年 3 月
ドロップダウンでは、次のようになります
December2012
january2013
february2013
march2013
ドロップダウンボックスで現在の月と次の3か月を年とともに取得したいのですが、問題は、2012年11月になると最後の月が2013年1月になり、現在の月が2012年12月の場合、次の3か月は次のようになります
2013 年 1 月 2013 年 2 月 2013 年 3 月
ドロップダウンでは、次のようになります
December2012
january2013
february2013
march2013
次のようなことを試してください:
$this_month = mktime(0, 0, 0, date('m'), 1, date('Y'));
for ($i = 0; $i < 4; ++$i) {
echo date('M Y', strtotime($i.' month', $this_month)) . '<br/>';
}
echo date('F Y') . "\n";
echo date('F Y', strtotime('+1 month', time())) . "\n";
echo date('F Y', strtotime('+2 month', time())) . "\n";
echo date('F Y', strtotime('+3 month', time())) . "\n";
少しオブジェクト指向を感じている場合:
date_default_timezone_set('Europe/Stockholm');
$now = new DateTime(date('Y-m'));
$period = new DatePeriod($now, new DateInterval('P1M'), 3);
foreach ($period as $date)
{
print $date->format('MY');
}
$t = time();
$m = date('n', $t);
$d = date('j', $t);
$y = date('Y', $t);
for ($i = 0; $i < 4; $i++)
{
echo date('FY\n', mktime(0, 0, 0, ($m + $i - 1) % 12 + 1, $d, $y + ($m + $i > 12 ? 1 : 0)));
}