PHP, MySQL, JS, jQuery, Ajax, .htaccess,robots.txt,phponwebsites

7 Oct 2016

Disable future dates in date popup - Drupal 7

     This blog describes how to disable future dates in the Drupal 7. One of the features in the date  module is displayed the date in the pop-up.

Disable future dates in the date pop up - drupal 7

The use case is if you want to display only past & current date rather than all the dates in the pop-up, then how to do it in Drupal 7. Actually, the date module provides API called hook_date_popup_process_alter to alter the date_popup widget elements.

Example for disabling future dates in Drupal 7:

   For instance, I am going to disable future dates in the article content type. Please consider the following code snippet.

 * Implement hook_date_popup_process_alter().
function phponwebsites_date_popup_process_alter(&$element, &$form_state, &$context) {

  if ($form_state['complete form']['#form_id'] == 'article_node_form' && $element['#field']['field_name'] == 'field_date') {
    $max = 0;

  if (isset($element['#datepicker_options']['maxDate'])) {
    $max = $element['#datepicker_options']['maxDate'];

  if (isset($max)) {
    $element['#datepicker_options'] = array(
      'maxDate' => "+$max D",
  $element['date'] = date_popup_process_date_part($element);

   I've disabled the dates only if the form is article & the field name is field_date. After added the above code to your module, you could see disabled future dates in the date pop up. It looks like the below image:

Disable future dates in the date pop-up in drupal 7

   Now I've hope you know how to disable the future dates at the date module in Drupal 7.