2015-07-11 1 views
0

Я пытаюсь получить от данных базы данных в зависимости от этого условия:Как сравнить даты с текущего года с колонкой из базы данных

if($now < "'.$current_year . '-09-15") 

Я должен отображать данные для последней сессии исследования. Я хочу проверить, нет ли текущей даты менее 15. сентября текущего года, и если она предназначена для отображения данных из базы данных для учебной сессии. Но это не показывает правильный результат. Мой код:

<?php 
 
$date = new DateTime("now"); 
 
$now=$date->format('Y-m-d'); 
 
$current_year = $date->format('Y'); 
 
$last_year = $current_year -1; 
 

 

 
if($now < "'.$current_year . '-09-15") { 
 

 
     $this->db->where('student_surveys.created_at < "'.$current_year . '-09-15" AND student_surveys.created_at > "'.$last_year . '-09-15"'); 
 
} 
 
else { 
 
     
 
     $this->db->where('student_surveys.created_at > "'.$current_year . '-09-15"'); 
 
}

+0

Какой результат вы получите? – dg131

+0

Я основал решение: $ this-> db-> где ('student_surveys.created_at <', date ("Y-m-d", strtotime ($ current_year. "- 09-15"))); Это из-за синтаксиса Codeigniter :) –

ответ

1

Там есть ошибка в формировании вашей даты в сравнивающейся заявлении. Когда я попытался запустить код, с «истинным», напечатанным в части if и «false» в else, он вернул false (это был неверный вывод). Попробуйте следующее:

<?php 
$date = new DateTime("now"); 
$now=$date->format('Y-m-d'); 
$current_year = $date->format('Y'); 
$last_year = $current_year -1; 
$yourdate = $current_year."-09-15"; 
if($now < $yourdate) {   
     $this->db->where('student_surveys.created_at < "'.$current_year . '-09-15" AND student_surveys.created_at > "'.$last_year . '-09-15"'); 
} 
else {  
     $this->db->where('student_surveys.created_at > "'.$current_year . '-09-15"'); 
} 
?> 
+0

Спасибо, он работает! У меня проблема с кавычками. :) –