Usando la API de formulario y hook_form_alter () , ¿cómo puedo configurar (forzar) manualmente los valores para cada uno de los tipos de campo de fecha de Drupal 7 usando una marca de tiempo válida de Unix?
Cuando el formulario finalmente se envía, los tipos field_date siempre son matrices vacías. A continuación se muestra el código roto desde el que estoy trabajando.
hook_form_alter(&$form, &$form_state, $form_id) {
// http://drupal.org/node/1455576 - Date
$form['field_date'][LANGUAGE_NONE][0]['value'] = time();
// http://drupal.org/node/1455576 - Date (ISO Format)
$form['field_date_iso_format'][LANGUAGE_NONE][0]['value'] = time();
// http://drupal.org/node/1455576 - Date (Unix Timestamp)
$form['field_date_unix_timestamp'][LANGUAGE_NONE][0]['value'] =time();
}
Debo mencionar que el widget de campos está configurado en texto y su formato es 'Ymd H: i: s'
También lo he intentado en date('Y-m-d H:i:s', time())
lugar de time()
.
Ejemplo de salida dpm ().
También debo tener en cuenta que, como solución alternativa, puedo establecer el campo si lo modifico en hook_node_presave (). Para hacer esto, configuré $node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
. Todavía me gustaría entender cómo hacerlo usando hook_form_alter.
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
?