การใช้Form APIและhook_form_alter ()ฉันจะตั้งค่า (บังคับ) ค่าด้วยตนเองสำหรับแต่ละประเภทฟิลด์วันที่ของ Drupal 7 โดยใช้ Unix Timestamp ที่ถูกต้องได้อย่างไร
เมื่อฟอร์มถูกส่งรูปแบบ 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']
หรือยัง