tryConvertToDate() 공개 정적인 메소드

Try to convert string into DateTime object from more date formats
public static tryConvertToDate ( mixed $value, array $formats = [] ) : DateTime
$value mixed
$formats array
리턴 DateTime
예제 #1
0
 /**
  * @param  mixed  $row
  * @param  FilterDateRange $filter
  * @return void
  */
 public function applyFilterDateRange($row, FilterDateRange $filter)
 {
     $format = $filter->getPhpFormat();
     $condition = $filter->getCondition();
     $values = $condition[$filter->getColumn()];
     $row_value = $row[$filter->getColumn()];
     if ($values['from'] !== NULL && $values['from'] !== '') {
         $date_from = DateTimeHelper::tryConvertToDate($values['from'], [$format]);
         $date_from->setTime(0, 0, 0);
         if (!$row_value instanceof \DateTime) {
             /**
              * Try to convert string to DateTime object
              */
             try {
                 $row_value = DateTimeHelper::tryConvertToDate($row_value);
             } catch (DataGridDateTimeHelperException $e) {
                 /**
                  * Otherwise just return raw string
                  */
                 return FALSE;
             }
         }
         if ($row_value->getTimeStamp() < $date_from->getTimeStamp()) {
             return FALSE;
         }
     }
     if ($values['to'] !== NULL && $values['to'] !== '') {
         $date_to = DateTimeHelper::tryConvertToDate($values['to'], [$format]);
         $date_to->setTime(23, 59, 59);
         if (!$row_value instanceof \DateTime) {
             /**
              * Try to convert string to DateTime object
              */
             try {
                 $row_value = DateTimeHelper::tryConvertToDate($row_value);
             } catch (DataGridDateTimeHelperException $e) {
                 /**
                  * Otherwise just return raw string
                  */
                 return FALSE;
             }
         }
         if ($row_value->getTimeStamp() > $date_to->getTimeStamp()) {
             return FALSE;
         }
     }
     return TRUE;
 }
예제 #2
0
 /**
  * Filter by date range
  * @param Filter\FilterDateRange  $filter
  */
 public function applyFilterDateRange(Filter\FilterDateRange $filter)
 {
     $conditions = $filter->getCondition();
     $c = $this->checkAliases($filter->getColumn());
     $value_from = $conditions[$filter->getColumn()]['from'];
     $value_to = $conditions[$filter->getColumn()]['to'];
     if ($value_from) {
         $date_from = DateTimeHelper::tryConvertToDate($value_from, [$filter->getPhpFormat()]);
         $date_from->setTime(0, 0, 0);
         $p = $this->getPlaceholder();
         $this->data_source->andWhere("{$c} >= ?{$p}")->setParameter($p, $date_from->format('Y-m-d H:i:s'));
     }
     if ($value_to) {
         $date_to = DateTimeHelper::tryConvertToDate($value_to, [$filter->getPhpFormat()]);
         $date_to->setTime(23, 59, 59);
         $p = $this->getPlaceholder();
         $this->data_source->andWhere("{$c} <= ?{$p}")->setParameter($p, $date_to->format('Y-m-d H:i:s'));
     }
 }