public function testMappingFieldsOptionInputArrayWithFormat() { $dateTimeObject = new \DateTime('2012-05-03 12:41:11'); $dateObject = new \DateTime('2012-05-03'); $value = array('datetime' => $dateTimeObject, 'time' => $dateObject, 'string' => $dateTimeObject->format('Y-m-d H:i:s'), 'timestamp' => $dateTimeObject->getTimestamp()); $this->column->setOptions(array('input_type' => 'array', 'datetime_format' => 'Y.d.m', 'input_field_format' => array('datetime' => array('input_type' => 'datetime'), 'time' => array('input_type' => 'datetime'), 'string' => array('input_type' => 'string', 'datetime_format' => 'Y-m-d H:i:s'), 'timestamp' => array('input_type' => 'timestamp')))); $this->assertSame($this->column->filterValue($value), array('datetime' => $dateTimeObject->format('Y.d.m'), 'time' => $dateObject->format('Y.d.m'), 'string' => $dateTimeObject->format('Y.d.m'), 'timestamp' => $dateTimeObject->format('Y.d.m'))); }
/** * @param int * @return \DateTime */ private function transformTimestampToDateTime($value) { if (!is_numeric($value)) { throw new \InvalidArgumentException(sprintf('Value in column "%s" should be timestamp but "%s" type was detected. Maybe you should consider using different "input" opition value?', $this->getName(), gettype($value))); } $dateTime = new \DateTime(); $dateTime->setTimestamp($value); if (!$dateTime instanceof \DateTime) { throw new DataGridColumnException(sprintf('value "%s" is not a valid timestamp', $value)); } return $dateTime; }