2016-08-23 62 views
0

我不是一個編碼器,我需要修改以下代碼以刪除所有選項,而不是僅顯示數組中的2天。在此日期之前刪除所有下拉選項

add_filter('frm_setup_new_fields_vars', 'remove_field_option', 30, 2); 
add_filter('frm_setup_edit_fields_vars', 'remove_field_option', 30, 2); 
function remove_field_option($values, $field) { 
    if ($field->id == 242) { 
    $timestamp = time(); 
    $options_to_remove = array('2016-08-19', '2016-08-20') 
    foreach ($options_to_remove as $remove) { 
     $option_key = array_search($remove, $values['options']); 
     if ($option_key !== false) { 
     unset($values['options'][ $option_key ]); 
     } 
    } 
    } 
    return $values; 
} 
+0

您可能可以使用'strtotime($ time);'來轉換數組中的值,並取消設置小於您輸入值的值。 – Rasclatt

回答

0
如果你想要去用自己的方式$ options_remove陣列

$newArray = array_filter($oldArray,function($a) { 
global $options_remove; 
return !in_array($a,$options_remove); 
}); 

或者類似這樣

$today = mktime(0, 0, 0, date("m") , date("d"), date("Y")); 
$newArray = array_filter($oldArray,function($a) { 
// your old array assumed to hold the date or datetime as value such as '2016-08-11' or '2016-08-11 08:11:23' 
global $today; 
return strtotime($a) < $today; 
}); 

$ newarray

持有時間少於今天的起始值。所以直到昨天結束

相關問題