2015-10-22 4 views
0

Я сомневаюсь в вопросе, который я делаю в CakePHP. Мне нужно получить все записи из моей базы данных в зависимости от разницы в часах с приблизительной датой. например:Разница в часах между двумя датами

$date = 2015-10-15 11:10:59; 

Мне нужно вычислить, что между $data['Inscripcion']['date'] и $date имеет четыре или более часов друг от друга, в противном случае не должен привести базу данных записей. Все это в find->('list', array('conditions => array('date'))).

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

+4

в сыром SQL, '... где час (TimeDiff (field1, field2))> = 4'? –

+0

Я думаю, что самое лучшее для меня сделало бы это с помощью Cake, возможно ли это? – NHTorres

+2

Это намного проще сделать на уровне mysql, trust @MarcB –

ответ

0

Не уверен, что именно то, что вы пытаетесь сделать, но

if (abs(strtotime($date) - strtotime($data['Inscripcion']['date'])) > (60 * 60 * 4)) { 
    // stuff 
} 

Edit: К сожалению, Я привык к PHP 5.3, см. Ответ nessuno.

+0

Спасибо за ответ! – NHTorres

0

Вы можете использовать PHP встроенные классы: DateTime и DateInterval

$date = new DateTime('2015-10-15 11:10:59'); 
$date2 = new DateTime($data['Inscripcion']['date']); 

$diff = $date2->diff($date); 

if($diff->h + $diff->days*24 > 4) { 
    //do stuff 
} 
+0

Спасибо, что ответили, но это невозможно в консультации с тортом? Я спрашиваю только о сомнениях. – NHTorres

+1

Глядя на документацию CakePHP, я нашел (http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html)(TimeHelper). Но он не предоставляет необходимый вам метод. Таким образом, я думаю, вы должны использовать встроенные функции php – nessuno

Смежные вопросы