使用Form 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();
}
我应该提到将字段小部件设置为文本,其格式为“ 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']
吗?