Black Jack: А откуда бы ему взяться? Я уверен, что в функции strtotime предусмотрели такие граничные случаи. Но насчет дня недели я вообще не уверен - в вопросе не описано зачем он нужен.
Black Jack: да, мне самому не очень нравится. Ну, на то оно и на коленке, чтобы криво и трясущимися руками :)
Как говорится, pull requests are welcome.
georgich: я бы на вашем месте не пользовался strtotime, ведь у вас на самом деле не timestamp хранится.
Гораздо надежнее и нагляднее разбить время на часы и минуты, определить дату и собрать два объекта DateTime при помощи setDate и setTime вручную.
Смотрите, у вас две даты - начало диапазона и конец. У даты есть число, месяц и время. При этом число и месяц у них одинаковы - ведь вы генерируете его из строки (например, берете дату ближайшей пятницы). Но если время конца диапазона меньше времени начала, нужно конец просто сдвинуть на один день вперед.
Alexander Kim: Здесь нужнен именно оператор OR. Он означает, что вам нужны строки со значением min_zakaz или min_zakaz_region. К количеству возвращаемых записей он не имеет никакого отношения.
Еще раз - почитайте книгу для начинающих.
C_Nepall: по большому счету, любая функция в js - замыкание. Но термин обычно используется для обозначения функций, которые используют переменные, объявленные во внешней области видимости. В вашем примере такая переменная тоже есть - element.