Sana strtotime
diğer bazı (ve / veya ek) bilgi vermek gerekecek sanırım.
Örneğin, Mart istediğiniz gün sayısı:
$nextMarch = strtotime("1 march");
var_dump($nextMarch, date('Y-m-d H:i:s', $nextMarch));
Ama bu sene mart alırsınız:
int 1235862000
string '2009-03-01 00:00:00' (length=19)
Yani, "bir sonraki" yürüyüşü, yani gelecek yıl almak için:
$nextMarch = strtotime("1 march +1 year");
var_dump($nextMarch, date('Y-m-d H:i:s', $nextMarch));
Ve sen olsun:
int 1267398000
string '2010-03-01 00:00:00' (length=19)
Yani, belki bu yıl veya önümüzdeki bir istemediğinizi bilmek, kendiniz bazı hesaplama yapmak gerekir. Böyle bir şey hile yapabilir:
$nextMarch = strtotime("1 march");
if ($nextMarch < time()) {
$nextMarch = strtotime("1 march +1 year");
}
var_dump($nextMarch, date('Y-m-d H:i:s', $nextMarch));
(I don't really like this idea, but it seems to be working -- even though a simpler solution would definitely be nice...)