Диапазон дат между 2 датами (синта c) - PullRequest
0 голосов
/ 20 марта 2020

Это сводит меня с ума !!! Вот код, который я пытаюсь поместить данные за последние 31 день между двумя датами, СЕЙЧАС и 31 день спустя.

Этот код не работает:

$now = date("Y-m-d");
$datetime = new DateTime($now);
$datetime->modify('+31 days');
$NEW_30 = $datetime->format('Y-m-d');

$get_time1ax = "select * from support_tickets WHERE start_date >= '".$now."' AND end_date <= '".$NEW_30."' ORDER BY problem_title ASC";

Но этот код работает? Не понимаю этого.

$get_time1ax = "select * from support_tickets WHERE start_date >= '2020-03-19' AND end_date <= '2020-04-19' ORDER BY problem_title ASC";

Обратите внимание, что фактическая дата находится в поле, а не в переменной. Weird.

Любая помощь будет полезна.

Ответы [ 2 ]

2 голосов
/ 20 марта 2020

Я пытаюсь поместить данные за последние 31 день между [...] сейчас и 31 днем ​​спустя.

Вы можете делать арифметику дат непосредственно в базе данных:

select * 
from support_tickets 
where start_date >= curent_date and end_date <= current_date + interval 31 day

Возможно, вы имеете в виду 1 месяц, когда говорите 31 день, поэтому:

select * 
from support_tickets 
where start_date >= curent_date and end_date <= current_date + interval 1 month
0 голосов
/ 20 марта 2020

попробуйте это:

$current_date = date("Y-m-d");
$current_date_plus_31 = date('Y-m-d',strtotime('+31 days',strtotime($current_date)));

Вот как это работает для меня с сегодняшней датой и через 31 день

...