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

Pregunta:

Utilizo el siguiente código para crear un nodo.

    $datetime = "2016-08-01 12:30:00";
    $values = array(
      'title' => $data['title'],
      'body' => $data['body'],
      'field_client' => $uid,
      'field_appointment_date_time' => $datetime,
      'type' => 'appointment'
   );

  $appointment = Node::create($values);
  $appointment->save();

El problema es que field_appointment_date_time (un campo de fecha y hora) no se ha guardado.

¿Por qué pasó esto?

Respuesta:

El código anterior es correcto, la fecha y hora se guardó en la base de datos. el problema es frontend.

frontend esperaba este formato:

"2016-08-01T12:30:00", need a "T" as separator.

aquí es cómo poner esa T como separador,

\DateTime::format("Y-m-d\Th:i:s"), need a escape character in-front of T.

Actualización del 22 de enero de 2016:

Por cierto, descubrí en Drupal 8, la forma correcta de almacenar la fecha y hora es la siguiente:

1> first , find out current user timezone, \Drupal::currentUser()->getTimezone()

2> $given = new \Drupal\Core\Datetime\DrupalDateTime("2016-08-01T12:30:00",$user->getTimezone());

3> $given->setTimezone(new \DateTimeZone("UTC"));

4> then get back formated datetime string $given->format("Y-m-d\Th:i:s");

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım