Pārlūkot izejas kodu

timestamp support

Andrew Tch 13 gadi atpakaļ
vecāks
revīzija
d4150b40cf
1 mainītis faili ar 13 papildinājumiem un 1 dzēšanām
  1. 13 1
      Filter/AbstractDateFilter.php

+ 13 - 1
Filter/AbstractDateFilter.php

@@ -43,6 +43,12 @@ abstract class AbstractDateFilter extends Filter
                 return;
             }
 
+            //transform types
+            if ($this->getOption('input_type') == 'timestamp') {
+                $data['value']['start'] = $data['value']['start'] instanceof \DateTime ? $data['value']['start']->getTimestamp() : 0;
+                $data['value']['end'] = $data['value']['end'] instanceof \DateTime ? $data['value']['end']->getTimestamp() : 0;
+            }
+
             //default type for range filter
             $data['type'] = !isset($data['type']) || !is_numeric($data['type']) ?  DateRangeType::TYPE_BETWEEN : $data['type'];
 
@@ -70,6 +76,11 @@ abstract class AbstractDateFilter extends Filter
             //just find an operator and apply query
             $operator = $this->getOperator($data['type']);
 
+            //transform types
+            if ($this->getOption('input_type') == 'timestamp') {
+                $data['value'] = $data['value'] instanceof \DateTime ? $data['value']->getTimestamp() : 0;
+            }
+
             //null / not null only check for col
             if (in_array($operator, array('NULL', 'NOT NULL'))) {
                 $this->applyWhere($queryBuilder, sprintf('%s.%s IS %s ', $alias, $field, $operator));
@@ -132,7 +143,8 @@ abstract class AbstractDateFilter extends Filter
         return array($name, array(
             'field_type'    => $this->getFieldType(),
             'field_options' => $this->getFieldOptions(),
-            'label'         => $this->getLabel()
+            'label'         => $this->getLabel(),
+            'input_type'    => 'datetime'
         ));
     }
 }