1.) You almost have it.... you're correct in joining the tables, but your queries need to be combined to something like say:
SELECT p.pid, SUM(p.arrtime-p.deptime) AS `time`,
r.pid, r.first_name, r.last_name, r.vatsimid
FROM roster AS r
INNER JOIN pirep AS p
ON r.pid = p.pid
GROUP BY p.pid
I think the reason you only see one entry is because of your "group by" statement. Try removing that to see what you get 😉
2.) Depending upon how they type the date and time in determines how you'll convert the date. Typically, it'd be best to have drop-downs for the date, and have them enter the time in HH:MM AM/PM format. But you can choose. If done with drop-downs, you can easily do this:
$time = strtotime($_POST['month'] . ' ' . $_POST['day'] . ', ' . $_POST['year'] . ' ' . $_POST['time']);
3.) First of all: your options will send no values since you don't specify what each options value is 🙁 Secondly, you'd need to get the information via the query, and use that as the content of the <option> tag, and the id number as the value of the <option> tag.
<option value="ID_NUMBER">INFORMATION</option>