I ended up solving this by doing essentially one thing in a couple places. WordPress doesn’t let you specify a particular type for your meta data and stores everything as strings. As such, I added an extra meta data field that I used as the actual timestamp (using strtotime to convert it to a unix numeric timestamp) that gets created when the post is saved from the $startDate value.
$startDateTimeStamp = strtotime($_POST['startDate']);
From there I made my original meta_query order the posts by this new meta data value instead:
$args = array(
'post_type' => 'event',
'post_status' => 'publish',
'posts_per_page' => $num,
'paged' => $paged,
'meta_key' => 'startDateTimeStamp',
'orderby' => 'meta_value_num',
'meta_query' => array(
array(
'key' => strtotime('startDateTimeStamp'),
'value' => strtotime(date("m/d/Y")),
'compare' => '>=',
'type' => 'NUMERIC'
)
),
'order' => 'ASC'
);
$e_query = new WP_Query($args);
*Please note: * This query wouldn’t work until I made sure that I ran the meta query’s key/value through the strtotime function and changed the orderby to ‘meta_value_num’.