Database design: handling time
Have a Class table, with a foreign key to Teacher - the person who taught the class.  Give Class columns for the start and end time. This can be either the MySQL time type (09:00:00 for 9am) or an integer type (9=9am, 23=11pm), it doesn't matter.  From these you can calculate the duration of a class.  The work a teacher performs is the sum of the duration of his classes:

select
    t.TeacherID,
    sum(c.EndTime - c.StartTime)
from Teacher as t
inner join Class as c
    on c.TeacherID = t.TeacherID
group by
    t.TeacherID


(Sorry if that doesn't parse - I work with SQL Server and am not familiar with MySQL syntax. Hopefully you get the idea.)

To cope with schedule conflicts add a day-of-week column to Class.  Enforce the rule about a teacher being in only one class at a time through triggers or a unique index.  Since your schedules are weekly the combination of day-of-week and start time would be a sufficient primary key.

As it is likely your school will offer the same subject more than once, you may find it beneficial to separate the concept of a class (Tuesday at 10am) from an actual instance (5th of March at 10am) to the delivery of that instance (Dave taught on 5th March at 10am).  A separate table for each of these would be best.