Как правильно считать время?
Рекомендую прикрутить и освоить carbon.nesbot.com/, там все просто, только поэкспериментировать немного. А потом забыть про ручную возню с юникстаймом, форматированием туда-сюда и т. д.
Возьмите strtotime, который выдает unix timestamp. Например,
$time = strtotime("-1 week", $old_time);
или
$time = strtotime("+28 days", $old_time);
Найти начало дня нужной метки легко:
$time_start = strtotime("00:00:00", $time);
и конец дня
$time_end = strtotime("23:59:59", $time);
на выходе uninx timestapm, который можно сравнивать и крутить-вертеть.