Это не всегда лучший способ выполнить математику даты, но обратите внимание на очень удобную функцию, заключающуюся в том, что strtotime () также принимает интервальные слова:
$var = strtotime($date . ' +1 day -1 second');
Т.е., начните с $ date, добавьте один день, затем вычтите одну секунду. Это дает вам 23:59:59 за $ date.