View difference between Paste ID: FmQ6N7Jt and Sqq0AMbG
SHOW: | | - or go back to the newest paste.
1
<?php
2
3
add_filter('gform_register_init_scripts', 'gf_script_custom_scripts');
4
function gf_script_custom_scripts($form) {
5
        ob_start();
6
        ?>
7-
  $date		=	$_POST["input_1"]; //GF 'date picker' using mm/dd/yyyy
7+
8-
  $start	=	$_POST["input_2"]; //GF 'timefield' using military time
8+
        (function($) {
9-
  $end		=	$_POST["input_3"]; //GF 'timefield' using military time
9+
				$("li.gf_readonly input").attr("readonly","readonly");
10
        });
11
                
12-
  $startdate = new DateTime( $date . ' ' . $start[0] . ':' . $start[1] ) ;
12+
        })(jQuery);
13
 
14-
  $enddate = new DateTime( $date . ' ' . $end[0] . ':' . $end[1] ) ;
14+
        <?php
15
        $script = ob_get_clean();
16
        GFFormDisplay::add_init_script($form['id'], 'gf_custom_scripts', GFFormDisplay::ON_PAGE_RENDER, $script);
17
 
18
        return $form;
19
}
20
21
add_action("gform_pre_submission","pre_submission_handler");
22
function pre_submission_handler($form) {
23
  // get input from form
24
  $date			=	$_POST["input_1"]; // GF 'Date Picker' mm/dd/yyy
25
  $starthour	=	$_POST["input_9"]; // GF "Drop Down' Hour Milittary Time
26
  $startminute	=	$_POST["input_14"]; // GF "Drop Down' Minute Milittary Time
27-
  $_POST["input_7"] = $diff;
27+
  $endhour		=	$_POST["input_10"]; // GF "Drop Down' Hour Milittary Time
28
  $endminute	=	$_POST["input_13"]; // GF "Drop Down' Minute Milittary Time
29
  
30
  // convert date and time arrays into datetime formats
31
  $startdate = new DateTime( $date . ' ' . $starthour . ':' . $startminute ) ;
32
  
33
  $enddate = new DateTime( $date . ' ' . $endhour . ':' . $endminute ) ;
34
 
35
  //convert datetimes into seconds to compare
36
  $starttime = strtotime( $startdate->format( 'm/d/Y H:i' ) );
37
  $endtime = strtotime( $enddate->format( 'm/d/Y H:i' ) );
38
 
39
  // check to see if the times span overnight
40
  if($starttime > $endtime)
41
    $endtime = strtotime($enddate->format('m/d/Y H:i:s') . " +1 day");
42
 
43
  // perform calculation
44
  $diff = floor(($endtime - $starttime)/60/60);
45
 
46
  $_POST["input_16"] = $diff;
47
}