Следует помнить, что функция strtotime()
очень надежна и может дать вам нечеткую информацию, такую как во второе воскресенье марта ("Second Sunday March 0"
) .
Например, чтобы найти воскресенье, отмечающее вторую неделю этого месяца:
<?php
$month = time();
// Calculate the first day of the month contained in the $month timestamp
$first_day = strtotime(
date(
'Y-m-1 00:00:00',
$month
)
);
// Calculate the sunday opening the week that contains the first day
// of the month (e.g. August 30th, 2009 is the Sunday that corresponds
// to September 1st, 2009)
$pseudo_first_sunday = strtotime(
'First Sunday',
strtotime(
'-1 Week',
$first_day
)
);
var_dump(date( 'Y-m-d', strtotime('Second Week', $pseudo_first_sunday) ));
Вывод этого скрипта будет (по состоянию на 2009-9-14):
string(10) "2009-09-06"
Это вторая неделя сентября (но не вторая ПОЛНАЯ неделя, если вы хотите заменить $first_day
на $pseudo_first_sunday
).
Просто нужно иметь в виду, когда вы играете с датами в PHP.