You have to work out which time is the greater, if you subtract $ctime($date 10:08) from $ctime($date 09:02) you will have a negative number, as $duration() correctly returned.

hh:nn is not good for this, 09:02 (am) looks identical to 09:02 (pm) yet they are 43200 seconds apart. Better to use HH:nn, but by far the best is to set %clock to $ctime.