У меня есть таблица, показывающая время с момента начала работы.
// These are unix epoch times... $raised = 1360947684; $now = 1361192598; $difference = 244914;
$difference
должна исключать любое время вне рабочего времени (например, 9-5 и выходные).
Как я мог это решить?
То, что вам нужно сделать, – 3 цифры.
И с этим вы закончили.
Найдите небольшой класс, который делает эти вещи. Имейте в виду, что нет обработки ошибок, настроек часового пояса, летнего времени, …
вход:
вывод:
регулируемые константы:
Используйте DateTime
.
Использование UNIX-времени для этого немного абсурдно, и вам придется буквально переделать DateTime
.
Посмотрите относительные форматы, где вы можете указать час дня, например
$date = new DateTime($raised); $business_start = new DateTime("09:00"); // 9am today $business_end = new DateTime("17:00"); // 5pm today
Остальное – для вас.
О, и вместо начала / конца вы, вероятно, можете использовать DateInterval
со значением P8H
( «период 8 часов» )
Проблема с использованием временных меток напрямую заключается в том, что вы назначаете контекст счетчику секунд. Вы должны работать в обратном направлении от времени, которое вы хотите исключить, и выработать свои временные метки заранее. Возможно, вы захотите перепроектировать свое хранилище, когда будет поднято задание. Может быть, для этого истечет срок?