Support

Account

Home Forums Backend Issues (wp-admin) Date picker field > Starting from before 1913? Reply To: Date picker field > Starting from before 1913?

  • Hi,

    in Acf 5.5.6 (I use the Pro Version), you will need to edit assets/js/acf-input.js file at line 4736 and 4764 and 4953:

    from:

    
                            // create options
    			var args = { 
    				dateFormat:			this.o.date_format,
    				altField:			this.$hidden,
    				altFormat:			'yymmdd',
    				changeYear:			true,
    				yearRange:			"-100:+100", // value to change
    				changeMonth:		true,
    				showButtonPanel:	true,
    				firstDay:			this.o.first_day
    			};

    to:

    
                            // create options
    			var args = { 
    				dateFormat:			this.o.date_format,
    				altField:			this.$hidden,
    				altFormat:			'yymmdd',
    				changeYear:			true,
    				yearRange:			"-200:+100", // value changed!
    				changeMonth:		true,
    				showButtonPanel:	true,
    				firstDay:			this.o.first_day
    			};

    Then you have to minify input.js in input.min.js because this is the file that is read in production; you can use an online tool like https://javascript-minifier.com.

    Finally clear any browser cache to get the new range.

    Or – more simply and cleaner:

    Use the appropriate hook

    functions.php

    
    function my_admin_enqueue_scripts() {
    
    	wp_enqueue_script( 'date-picker-js', get_template_directory_uri() . '/js/custom_date_picker.js', array(), '1.0.0', true );
    
    }
    
    add_action('admin_enqueue_scripts', 'my_admin_enqueue_scripts');
    

    custom_date_picker.js

    
    // function to merge two Javavascipt objects IE compatible, from prototype.js http://prototypejs.org/doc/latest/language/Object/extend/
    function extend(destination, source) {
    	for (var property in source)
    		destination[property] = source[property];
    	return destination;
    }
    
    // Acf hook -> Hooks -> Filters -> date_picker_args
    // see https://www.advancedcustomfields.com/resources/adding-custom-javascript-fields/
    acf.add_filter('date_picker_args', function( args, $field ){
    	
    	// do something to args
    	
    	var custom_args = {
    	  yearRange:			"-200:+100", // value to change
    	};
    	
    	args = extend(args, custom_args)
    	
    	// return
    	return args;
    			
    });