验证2日期以确保它们是有效日期

I am working with a date which is formatted like so:

25/02/1994 - 15/03/2000

To get each date I am using the explode function to separate each date between dash

$newdate = explode("-",$olddate);

Now my problem is, if it was just one date I could split it up in to 3 parts, the day, month, year and use the checkdate function to validate the month, but because I am using explode I cannot split it up like that (to my knowledge)

What would be the best way to validate the date for legitimacy?

You have a good start, after you exploded your string by -, just simply loop through each date with array_reduce() and reduce it to 1 value.

In the anonymous function you just explode() each date and check with checkdate() if it is a valid date, e.g.

<?php

    $str = "25/02/1994 - 15/03/2000";
    $dates = explode("-", $str);

    if(array_reduce($dates, function($keep, $date){
        list($day, $month, $year) = array_map("trim",explode("/", $date));
        if(!checkdate($month, $day, $year))
            return $keep = FALSE;
        return $keep;
    }, TRUE)) {
        echo "all valid dates";
    }

?>
$date = '25/02/1994 - 15/03/2000';
$date_array = explode("-", $date);

$first_date = explode("/", trim($date_array[0]));
$second_date = explode("/", trim($date_array[1]));

if(checkdate($first_date[1],$first_date[0],$first_date[2])){
 //do stuff
}

if(checkdate($second_date[1],$second_date[0],$second_date[2])){
 //do stuff
}

or, what Daan suggested using the DateTime object.

$date = '25/02/1994 - 15/03/2000';
$date_array = explode("-", $date);

$date1 = DateTime::createFromFormat('j-M-Y', $date_array[0]);
$date2 = DateTime::createFromFormat('j-M-Y', $date_array[1]);

if($date1){
  //do stuff
}
if($date2){
  //do stuff
}