Saltar al contenido

Drupal: establezca programáticamente un campo de fecha y hora

Este equipo de expertos pasados ciertos días de trabajo y de recopilar de información, dimos con la solución, nuestro deseo es que todo este artículo sea de utilidad para tu trabajo.

Solución:

Los campos de fecha y hora en Drupal 8 se almacenan como cadenas. Entonces necesitas convertirlo en string.

Puede utilizar el método de formato, por ejemplo

$formatted_date = $date->format('Y-m-d H:i:s');

Consulte Inserción del valor del formulario de campo de fecha y hora

También puedes usar T como separador,

Me gusta:

DateTime::format("Y-m-dTH:i:s"); //need a escape character in front of T.

Consulte ¿Por qué no se guarda mi campo de fecha y hora?

Si su campo de fecha no es un FECHA Y HORA pero un FECHA, use un formato diferente. Y una mejor solución sería usar la constante del objeto Datime para obtener el formato.

constant DATETIME_STORAGE_FORMAT :: string(12) "Y-m-dTH:i:s"
constant DATE_STORAGE_FORMAT :: string(5) "Y-m-d"

Ejemplo de trabajo.

$dtime = DateTime::createFromFormat("m/d/Y - G:i", $row->Date); // not needed
$dtime->setTimezone(new DateTimezone(DateTimeItemInterface::STORAGE_TIMEZONE));
$dtimeFormat = $dtime->format(DateTimeItemInterface::DATE_STORAGE_FORMAT);

$article->set('field_date', $dtimeFormat);

Esto es lo que funcionó para mí:

$timestamp = Drupal::time()->getRequestTime();
$date = DrupalDateTime::createFromTimestamp($timestamp, 'UTC');
$entity->field_date = $date->format("Y-m-dTH:i:s");

Valoraciones y comentarios

Más adelante puedes encontrar las reseñas de otros sys admins, tú aún tienes la libertad de insertar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *