strtotime( 'midnight' )
will give you midnight for today, which has already happened! You want midnight for tomorrow.
e.g. date( 'F jS H:i:s', strtotime( 'midnight' ) )
on July 19th is July 19th 00:00:00
However, date( 'F jS H:i:s', strtotime( 'tomorrow midnight' ) )
would be July 20th 00:00:00
…which is what you want! So just use tomorrow midnight
instead.