1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
<?php
namespace App\ProductBundle\Form\DataTransformer;
use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\TransformationFailedException;
class StringToDatetimeTransformer implements DataTransformerInterface
{
public function transform($date)
{
if (null === $date) {
return "";
}
return $date->format('j/m/Y');
}
public function reverseTransform($number)
{
if (!$number) {
return null;
}
if (preg_match('/([0-9]{2})\/([0-9]{2})\/([0-9]{4})/', $number, $matches)) {
$date = \DateTime::createFromFormat('d-m-Y', $matches[1].'-'.$matches[2].'-'.$matches[3]);
return $date;
}
if (preg_match('/([0-9]{2})\/([0-9]{4})/', $number, $matches)) {
$date = \DateTime::createFromFormat('m-Y', $matches[1].'-'.$matches[2]);
return $date;
}
if (preg_match('/([0-9]{4})/', $number, $matches)) {
$date = \DateTime::createFromFormat('Y', $number);
return $date;
}
return null;
}
} |
Partager