Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/CoreBundle/Form/DataTransformer/
Upload File :
Current File : /var/www/v3.cesa.co.za/src/CoreBundle/Form/DataTransformer/DateTimeToStringTransformer.php

<?php

namespace App\CoreBundle\Form\DataTransformer;

use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\TransformationFailedException;

class DateTimeToStringTransformer implements DataTransformerInterface {

    private $format = '';
    private $defaultDate = null;
    private $yesterday = null;

    /**
     */
    public function __construct($format = 'd-m-Y H:i:s', $defaultDate = null, $yesterday = false) {
        $this->format = $format;
        $this->defaultDate = $defaultDate;
        $this->yesterday = $yesterday;
    }

    /**
     * Transforms an object (date) to a string (date).
     *
     * @param  DateTime|null $date
     * @return string
     */
    public function transform($date) {

        if ((null === $date) || (!is_object($date))) {

            if (is_object($this->defaultDate)) {
                return $this->defaultDate->format($this->format);
            } elseif ($this->yesterday) {
                $this->defaultDate = new \DateTime();
                $this->defaultDate->modify('-1 day');
                return $this->defaultDate->format($this->format);
            }

            return "";
        }

        return $date->format($this->format);
    }

    /**
     * Transforms a string (date) to an object (date).
     *
     * @param  string $dateString
     * @return DateTime|null
     * @throws TransformationFailedException if object (issue) is not found.
     */
    public function reverseTransform($dateString) {
        if (!$dateString) {
            return null;
        }

//        echo $dateString . '<br />';
//        exit;

        $date = new \DateTime($dateString);

//        echo $date->format($this->format) . '<br />';

        return $date;
    }
}