drupal 8 – Cómo obtener una cadena de fecha formateada de un objeto DateTimeItem

Pregunta:

Tengo un campo de fecha estándar de Drupal 'Mi fecha' (field_my_date). Puedo obtener su valor:

$node->field_my_date->value  // returns: "2017-12-14T08:00:00"

Pero quiero obtener una cadena de fecha formateada, que debería verse así: "14.12.2017".

Si se analiza el campo en la cáscara interactiva (drush núcleo-cli), entonces veo, que pueda conseguir la DateTimeFieldItemList objeto o DateTimeItem objeto:

>>> $node->field_my_date
=> Drupal\datetime\Plugin\Field\FieldType\DateTimeFieldItemList {#8836
 0: Drupal\datetime\Plugin\Field\FieldType\DateTimeItem {#8841},
}

>>> $node->field_my_date[0]
=> Drupal\datetime\Plugin\Field\FieldType\DateTimeItem {#8841
 value: [
   "value" => "2017-12-14T08:00:00",
 ],
}

Pero no he encontrado ningún método para reformatear la cadena de fecha. ¿Existe alguna posibilidad de definir el formato de la cadena de fecha de salida? O tengo que reformatear la cadena de salida, por ejemplo, así:

date("j.n.Y", strtotime($node->field_my_date->value));

Respuesta:

Un campo de fecha tiene dos propiedades, value para almacenar la fecha en UTC y date , un campo calculado que devuelve un objeto DrupalDateTime, en el que puede usar los métodos getTimestamp () o format ():

// get unix timestamp
$timestamp = $node->field_date->date->getTimestamp();
// get a formatted date
$date_formatted = $node->field_date->date->format('Y-m-d H:i:s');

Para un campo de rango de fechas:

// formatted start date
$start_date_formatted = $node->field_date->start_date->format('Y-m-d H:i:s');
// formatted end date
$end_date_formatted = $node->field_date->end_date->format('Y-m-d H:i:s');

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım