Wie kann ich mithilfe der Formular-API und hook_form_alter () die Werte für jeden Datumsfeldtyp von Drupal 7 mithilfe eines gültigen Unix-Zeitstempels manuell festlegen (erzwingen)?
Wenn das Formular endgültig gesendet wird, sind die field_date-Typen immer leere Arrays. Unten ist der kaputte Code, mit dem ich arbeite.
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();
}
Ich sollte erwähnen, dass das Feld-Widget auf Text eingestellt ist und das Format "Ymd H: i: s" lautet.
Ich habe es auch versucht date('Y-m-d H:i:s', time())
statt time()
.
Beispielausgabe von dpm ().
Ich sollte auch beachten, dass ich als Problemumgehung das Feld festlegen kann, wenn ich es in hook_node_presave () ändere . Um dies zu tun, $node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
möchte ich immer noch verstehen, wie dies stattdessen mit hook_form_alter gemacht wird.
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
?