I have been doing this in Magento 1 to save my local date like this:
//in my custom controller
$data = $this->_filterDateTime($this->getRequest()->getPost('my_name'), array("date"));
Now, is there similar way to do this in Magento 2?
What I have done so far:
//in constructor
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $timeZoneInterface,
\Magento\Framework\Stdlib\DateTime $dateTime,
$this->_timeZone = $timeZoneInterface;
$this->dateTime = $dateTime;
/////////////
//in my function
/////////////
//format d/m/y
//timezone Australia/Sydney
$date = $this->dateTime->formatDate(('17/08/18 2:16:35 pm');
//this also didn't work
$date = $this->_timeZone->convertConfigTimeToUtc('17/08/18 2:16:35 pm');
Error thrown:
date. DateTime::__construct(): Failed to parse time string (17/08/18
2:16:35 pm) at position 0 (1): Unexpected character
If I change 17/08/18 2:16:35 pm
to 12/08/18 2:16:35 pm
then it works perfectly.
I am unable to tell Magento that my format is d/m/y
.
Best Answer
I can see, M2 has similar function as M1 in controller class
However, this was working with Date but not the time. It always saved my AEST time as UTC, which is why while doing
$block->formatTime($myDate, \IntlDateFormatter::MEDIUM)
gave me wrong time, ie. 10+ hours.I am sure I am still missing something here. Would love to know more on this.
Although, for time being, I am able to save it like this:
I was missing
'm/d/Y h:i:s a'
part, while I posted my qst.