Проверка даты в течение периода времени в переполнении стека

Как проверить строки даты в формате отметки времени (exp. 2014-10-02 13:31:53) находится в пределах определенного периода времени в PHP.

Такие как:

  1. Ежедневный период: сегодня, завтра, вчера, два дня назад и т. Д.
  2. Недельный период: эта неделя, следующая неделя, последняя неделя, две недели назад и т. Д.
  3. Месячный период: этот месяц, следующий месяц, последний месяц, два месяца назад и т. Д.
  4. Годовой период: в этом году, в следующем году, в прошлом году, два года назад и т. Д.

1

Решение

Я предлагаю использовать DateTime класс (PHP 5.2+) и использовать операторы сравнения. Например, сравните, если в этом месяце следующим образом;

$start = new DateTime("First day of this month 00:00:00");
$end = new DateTime("Last day of this month 23:59:59");
$datetotest = new DateTime("2014-10-02 13:31:53");

if($datetotest >= $start and $datetotest <= $end) {
// do stuff
}

Вы даже можете написать функцию для каждого из них, если хотите.

function isInThisMonth(DateTime $date) {
$start = new DateTime("First day of this month 00:00:00");
$end = new DateTime("Last day of this month 23:59:59");
return ($date >= $start and $date <= $end);
}

if(isInThisMonth($datetotest)) // do stuff

Если вы посмотрите на PHP: DateTime относительные форматы это даст вам представление об описаниях, которые вы можете использовать, чтобы получить действительный DateTime для «прошлого года» или что-то еще.

Надеюсь это поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]