Sử dụng API biểu mẫu và hook_form_alter () , làm cách nào tôi có thể tự đặt (buộc) các giá trị cho từng loại trường ngày của Drupal 7 bằng cách sử dụng Dấu thời gian Unix hợp lệ?
Khi biểu mẫu cuối cùng được gửi, các kiểu field_date luôn là các mảng trống. Dưới đây là mã bị hỏng tôi đang làm việc.
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();
}
Tôi nên đề cập đến tiện ích trường được đặt thành văn bản và định dạng của nó là 'Ymd H: i: s'
Tôi cũng đã thử date('Y-m-d H:i:s', time())
thay thế time()
.
Ví dụ đầu ra dpm ().
Tôi cũng cần lưu ý rằng như một cách giải quyết, tôi có thể đặt trường nếu tôi sửa đổi nó trong hook_node_presave (). Để làm điều này, tôi đặt $node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
tôi vẫn muốn hiểu cách thực hiện việc này bằng hook_form_alter thay thế.
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
?