Te recomendamos que pruebes esta respuesta en un entorno controlado antes de enviarlo a producción, un saludo.
Solución:
Necesita inyectar en su constructor de clase una instancia de MagentoFrameworkStdlibDateTimeDateTime
y usa ese.
Algo como esto:
protected $date;
public function __construct(
....
MagentoFrameworkStdlibDateTimeDateTime $date,
....
)
....
$this->date = $date;
....
Entonces, puedes usar en tu clase esto:
$date = $this->date->gmtDate();
Llegar fecha UTC en Magento2 deberías usar MagentoFrameworkStdlibDateTimeDateTime::gmtDate();
Debe inyectar dependencia en esta clase a través de una construcción y luego usar esta función. Consulte esta clase para obtener más métodos relacionados con la fecha/hora.
En su ejemplo de código, está recuperando la fecha UTC, no la fecha de la tienda. Para obtener el formato de fecha de acuerdo con el zona horaria de la tienda actualusar
MagentoFrameworkStdlibDateTimeTimezoneInterface::formatDate();
(nuevamente, inyectando dependencia para construir)
Puede obtener fácilmente la fecha y hora de la tienda actual inyectando en su constructor de clase en instancia de MagentoFrameworkStdlibDateTimeTimezoneInterface
y use ese para obtener el DateObject.
Por ejemplo:
protected $timezone;
public function __construct(
....
MagentoFrameworkStdlibDateTimeTimezoneInterface $timezone,
....
)
....
$this->timezone = $timezone;
....
Y luego puedes usarlo de la siguiente manera:
$date = $this->timezone->formatDate();
Para obtener más información sobre los diferentes formatos, puede consultar este artículo que escribí https://codeblog.experius.nl/magento-2-get-current-store-date-time/
Si aceptas, tienes la habilidad dejar una sección acerca de qué le añadirías a esta reseña.