使用してフォームAPIとhook_form_alterを()有効なUNIXタイムスタンプを使用してDrupalの7の日付フィールドタイプのそれぞれの値を、私は手動で設定する方法(力)?
フォームが最終的に送信されると、field_date型は常に空の配列になります。以下は、私が作業している壊れたコードです。
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();
}
fieldsウィジェットがテキストに設定されており、そのフォーマットは「Ymd H:i:s」です。
のdate('Y-m-d H:i:s', time())
代わりにも試してみましたtime()
。
dpm()の出力例。
また、回避策として、hook_node_presave()でフィールドを変更すると、フィールドを設定できることにも注意してください。これを行うには、$node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
代わりにhook_form_alterを使用してこれを行う方法を理解したいと思います。
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
か?