EDIT: два минуса менее чем за минуту. Я думал, что это крошечный, но интересный вопрос.
ОРИГИНАЛЬНЫЙ ЗАПРОС: Я создаю пятинедельный календарь, в который я буду заливать информацию (день и дату и прочее).
Я хочу, чтобы верхняя левая ячейка была "текущим" воскресеньем.
Например, если сегодня является Weds 12th, тогда мне нужно найти Sun 9th в качестве начала для запуска. Затем я просто делаю $var = strtotime("+1 day", $var)
для следующих 34 слотов.
Моя проблема делает это аккуратно, если сегодня воскресенье.
В настоящее время у меня есть:
date_default_timezone_set("Pacific/Honolulu");
$day_now = time();
$current_day= date ("D", $day_now);
if ($current_day == "Sun")
{$day_now = strtotime("+1 day", $day_now);}
$day_now = strtotime("last sunday");
//do stuff/
Я просто задавался вопросом, был ли более "аккуратный" способ сделать это.
Я пробовал "это воскресенье, последнее воскресенье, воскресенье на этой неделе", но не смог найти ничего, что могло бы выбрать сегодня, так как воскресенье и ТАКЖЕ работают до конца недели.
Любопытно, если кто-то нашел форму слов, которая работает для этого с strtotime
.
У OK strtotime
нет ни одной фразы для текущего запроса ("это воскресенье" в течение всей недели). (Я бы назвал это ошибкой!)
Связанные обсуждения
Странное поведение strtotime() при использовании относительных дат ("на этой неделе")
а также
Вычисление относительных дат в php с использованием strtotime()
предлагать решения.
Мне нравится мое текущее решение - хотя и не элегантное, оно очень читаемо, и я знаю, что, если я вернусь к нему через пару лет, я пойму, что происходит.
Надеюсь, что "это воскресенье" будет исправлено когда-нибудь в strtotime
.
Спасибо за ввод.