PHP получить 1-й рабочий день - PullRequest
0 голосов
/ 16 февраля 2011

Я пытался найти 1-й день недели с указанной даты, но я не нашел никакого решения, но думаю, что вы можете сделать что-то вроде strtotime ("- x days", $ time)

Просто сейчас я использую этот метод, чтобы вычислить, сколько дней нужно вернуться, но я хочу знать, можно ли это каким-либо образом оптимизировать

if ($i == 0)
   return 6;
else
   return $i-1;

Где $ i - числовое представлениедень недели (совпадает с датой PHP ('w'))

Мне также нужно найти последний день недели, но там, я думаю, вы можете сделать

strtotime('+'.date('w', $dateTo).'days', $dateTo);

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

Вот и все относительные даты по математике.Если у вас есть правильная временная метка PHP, то это просто целое число.date('w') является правильным методом для извлечения значения дня недели из этой метки времени, но остальное можно сделать с помощью обычной математики:

$today = date('w', $dateTo);
$last_sunday = $dateTo - (86400 * $today); // same time on previous sunday
$last_day_of_week = $dateTo + (86400 * (6 % $today));

Это быстрее, чем round-tripping все через strtotime() и штрафы за разбор строки даты.

2 голосов
/ 16 февраля 2011

Попробуйте использовать strtotime() с относительным форматом .Примерно так должно работать: strtotime('monday', $relativeTime); для первого дня недели и strtotime('friday', $relativeTime); для последнего дня недели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...