2013-05-22 7 views
0

У меня есть 2 переменные создаются следующим образом:Symfony переменная дата, если оператор

 <?php $current = strftime('%m/%d/%g %H:%M:%S')?> 
     <?php $target = strftime('%m/%d/%g %H:%M:%S', strtotime($item->getendtime()))?> 

Тогда у меня есть, если подобное заявление:

 <?php if ($current < $target): ?> 
     Do this 
     <?php else: ?> 
     Do that 
     <?php endif; ?> 

Он прекрасно работает, пока мы находимся в новом году , Например, у меня есть несколько элементов, которые имеют «конечное время» в 2012 году. Если оператор if работает так, как должен, он должен «делать это», но вместо этого он делает «DO THIS»

+0

Если вы используете Учение и PHP> = 5.3 вы можете сравнить даты, как это: 'новый DateTime() < $item-> getDateTimeObject ('end_time')' – 1ed

ответ

2

Используйте приведенное ниже (сравните с меткой времени Unix):

$current = time(); 
$target = strtotime($item->getendtime()); 
+0

Если я пытаюсь что без использования «STRFTIME "тогда строка $ current возвращает большое целое число. $ Item-> getendtime() хранится в базе данных как дата, а не целое число. – djcloud23

+0

Вот почему вы используете функцию strtotime, которая изменяет вашу дату из базы данных на это большое целое число (временная метка UNIX). –

+0

Работал отлично. Спасибо тебе за это. – djcloud23