Title: Calculate date difference
Last modified: December 8, 2023

---

# Calculate date difference

 *  Resolved [nakafi](https://wordpress.org/support/users/nakafi/)
 * (@nakafi)
 * [2 years, 6 months ago](https://wordpress.org/support/topic/calculate-date-difference/)
 * Hello. 
   Want to calculate the difference between two dates.except weekends only
   work days.how to do this ? calculation field not working for this.

Viewing 3 replies - 1 through 3 (of 3 total)

 *  Plugin Support [Nebu John – WPMU DEV Support](https://wordpress.org/support/users/wpmudevsupport14/)
 * (@wpmudevsupport14)
 * [2 years, 6 months ago](https://wordpress.org/support/topic/calculate-date-difference/#post-17264191)
 * Hi [@nakafi](https://wordpress.org/support/users/nakafi/),
 * I hope you are keeping well and thank you for reaching out.
 * Unfortunately, there isn’t a readily available out-of-the-box solution for this.
   However, I have contacted our developers to check potential workarounds. We will
   provide updates here as soon as we receive feedback on this matter.
 * Kind Regards,
    Nebu John
 *  Plugin Support [Williams – WPMU DEV Support](https://wordpress.org/support/users/wpmudevsupport3/)
 * (@wpmudevsupport3)
 * [2 years, 5 months ago](https://wordpress.org/support/topic/calculate-date-difference/#post-17284379)
 * Hi again,
 * We haven’t heard from you in a while, we will go ahead and mark this thread as
   resolved. If you have any additional questions or require further help, please
   let us know!
 * Best regards,
    Laura
 *  Plugin Support [Nebu John – WPMU DEV Support](https://wordpress.org/support/users/wpmudevsupport14/)
 * (@wpmudevsupport14)
 * [2 years, 5 months ago](https://wordpress.org/support/topic/calculate-date-difference/#post-17300158)
 * Hi [@nakafi](https://wordpress.org/support/users/nakafi/),
 * Our developers worked on a custom workaround, please test this using a dev/staging
   website at your end.
 *     ```
       <?php
       add_action(
       	'wp_footer',
       	function() {
       		global $post;
       		if ( is_a( $post, 'WP_Post' ) && ! has_shortcode( $post->post_content, 'forminator_form' ) ) {
       			return;
       		}
       		?>
       		<script type="text/javascript">
       			(($,d)=>{
       				if ( window.wpmudev_forminator_dateranger ) {
       					return;
       				}
       				window.wpmudev_forminator_dateranger = {
       					has_loaded 		: false,
       					dp_start 		: $( '.start-date:not(.forminator-hidden) input.forminator-datepicker' ),
       					dp_end 			: $( '.end-date:not(.forminator-hidden) input.forminator-datepicker' ),
       					diff_field 		: $( '.date-diff:not(.forminator-hidden) input' ),
       					init: function() {
       						$(d).ajaxComplete( function( event, xhr, settings ) {
       							const action = wpmudev_forminator_dateranger.get_action( 'action', settings.data );
       							if ( 'forminator_load_form' == action ) {
       								wpmudev_forminator_dateranger.datepickers();
       							}
       						});
   
       						wpmudev_forminator_dateranger.datepickers();
       					},
       					datepickers: function(){
       						if ( wpmudev_forminator_dateranger.has_loaded ) {
       							return;
       						}
       						$( '.start-date:not(.forminator-hidden) input.forminator-datepicker' ).on( 'change', wpmudev_forminator_dateranger.start_date_changed );
       						$( '.end-date:not(.forminator-hidden) input.forminator-datepicker' ).on( 'change', wpmudev_forminator_dateranger.end_date_changed );
       					},
       					start_date_changed : function(){
       						let start_val = $( this ).val(),
       							end_val = $( '.end-date:not(.forminator-hidden) input.forminator-datepicker' ).val(),
       							start_date = new Date( start_val ),
       							end_date = new Date( end_val );
       						if ( start_date.getTime() > end_date.getTime() ) {
       							start_date.setDate( start_date.getDate() + 1 );
       							$( '.end-date:not(.forminator-hidden) input.forminator-datepicker' ).datepicker( "setDate", start_date );
       						}
       						wpmudev_forminator_dateranger.calculate_date_diff();
       					},
       					end_date_changed : function(){
       						let start_val = $( '.start-date:not(.forminator-hidden) input.forminator-datepicker' ).val(),
       							end_val = $( this ).val(),
       							start_date = new Date( start_val ),
       							end_date = new Date( end_val );
       						if ( start_date.getTime() > end_date.getTime() ) {
       							end_date.setDate( end_date.getDate() - 1 );
       							$( '.start-date:not(.forminator-hidden) input.forminator-datepicker' ).datepicker( "setDate", end_date );
       						}
       						wpmudev_forminator_dateranger.calculate_date_diff();
       					},
       					calculate_date_diff : function(){
                               var iWeeks, iDateDiff, iAdjust = 0;
       						let start_val = $( '.start-date:not(.forminator-hidden) input.forminator-datepicker' ).val(),
       							end_val = $( '.end-date:not(.forminator-hidden) input.forminator-datepicker' ).val(),
       							start_date = new Date( start_val ),
       							end_date = new Date( end_val ),
                                   iWeekday1 = start_date.getDay(),
                                   iWeekday2 = end_date.getDay();
   
                                   iWeekday1 = (iWeekday1 == 0) ? 7 : iWeekday1; // change Sunday from 0 to 7
                                   iWeekday2 = (iWeekday2 == 0) ? 7 : iWeekday2;
                                   if ( ( iWeekday1 > 5 ) && ( iWeekday2 > 5 ) ) iAdjust = 1; // adjustment if both days on weekend
                                   iWeekday1 = (iWeekday1 > 5) ? 5 : iWeekday1; // only count weekdays
                                   iWeekday2 = (iWeekday2 > 5) ? 5 : iWeekday2;
   
                                   iWeeks = Math.floor((end_date.getTime() - start_date.getTime()) / 604800000);
                                   if ( iWeekday1 < iWeekday2 ) { //Equal to makes it reduce 5 days
                                       iDateDiff = (iWeeks * 5) + (iWeekday2 - iWeekday1)
                                   } else {
                                       iDateDiff = ((iWeeks + 1) * 5) - (iWeekday1 - iWeekday2)
                                   }
   
                                   iDateDiff -= iAdjust
   
       							var diff = iDateDiff + 1;
       						if ( start_date!='Invalid Date' && end_date!='Invalid Date' ) {
       							if ( diff== 0 ) {
   
       							} else {
       								$( '.date-diff:not(.forminator-hidden) input' ).val( diff );
       								$( '.date-diff:not(.forminator-hidden) input' ).trigger('change');
       							}
       						}
       					},
       					get_action: function( name, url ) {
       						if ( ! url ) {
       							return '';
       						}
       						name = name.replace(/[\[\]]/g, "\\$&");
       						var regex = new RegExp(name + "(=([^&#]*)|&|#|$)"),
       							results = regex.exec(url);
       						if (!results) return null;
       						if (!results[2]) return '';
       						return decodeURIComponent( results[2].replace(/\+/g, " ") );
       					}
       				};
       				$(d).ready( function(){
       					wpmudev_forminator_dateranger.init();
       				} );
       			})(jQuery,document);
       		</script>
       		<?php
       	}, 9999
       );
       ```
   
 * The code could be added as a mu-plugin: [https://wpmudev.com/docs/using-wordpress/installing-wordpress-plugins/#installing-mu-plugins](https://wpmudev.com/docs/using-wordpress/installing-wordpress-plugins/#installing-mu-plugins)
 * Please make sure to update the form ID in the code and add the custom class “
   hidden-by-css” under the styling tab of the form.
 * I hope that helps. Please feel free to get back to us if you need any further
   clarification.
 * Kind Regards,
    Nebu John

Viewing 3 replies - 1 through 3 (of 3 total)

The topic ‘Calculate date difference’ is closed to new replies.

 * ![](https://ps.w.org/forminator/assets/icon-256x256.gif?rev=3443182)
 * [Forminator Forms – Contact Form, Payment Form & Custom Form Builder](https://wordpress.org/plugins/forminator/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/forminator/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/forminator/)
 * [Active Topics](https://wordpress.org/support/plugin/forminator/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/forminator/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/forminator/reviews/)

 * 3 replies
 * 3 participants
 * Last reply from: [Nebu John – WPMU DEV Support](https://wordpress.org/support/users/wpmudevsupport14/)
 * Last activity: [2 years, 5 months ago](https://wordpress.org/support/topic/calculate-date-difference/#post-17300158)
 * Status: resolved