Below is a script that will get you information about all the jobs that ran between a two dates. I was not able to figure out how to get you between specific times (I only had a few minutes to put this together). Nonetheless, this should get you a closer to what you are looking for...
USE msdb
DECLARE @startDate date='9/1/2013',
@endDate date='10/1/2013';
WITH job_step_history AS
(
SELECTj.name AS job_name,
j.[description] AS job_description,
jh.step_id AS step,
jh.step_name,
js.command AS step_command,
CONVERT(datetime,CAST(jh.run_date AS char(8))) AS run_date,
left(replace(right(convert(varchar,dateadd(millisecond,jh.run_time,'00:00:00:000'),21),12),'.',':'),11) AS run_time,
jh.run_duration
FROM sysjobhistory jh
JOIN sysjobs j ON jh.job_id=j.job_id
LEFT JOIN sysjobsteps js ON jh.job_id=js.job_id AND jh.step_id=js.step_id
)
SELECT *
FROM job_step_history
WHERE run_date>=@startDate
AND run_date<=@endDate
-- Itzik Ben-Gan 2001