Как упомянуто в комментарии ceeyajoz , полночь относительно неясна, см. эту ссылку .
Что касается вашего вопроса, рассмотрите этот eval.inскрипт .
вчерашняя полночь не такая, как сегодняшняя полночь, что раньше, чем сейчас.Кажется, что midnight
означает полночь, которая произошла в начале сегодняшнего дня.Учитывая это, понятно, что вы получаете отрицательное целое число, поскольку полночь уже произошла.
Как уже упоминалось в еще одном полезном комментарии :
@ user3066977 Если выхотите время, оставшееся до полуночи, сделайте strtotime('tomorrow midnight') - time()
или strtotime('tomorrow 00:00:00') - time()