Конечно в рабочее время, поэтому и важно знать смещение часового пояса клиента. Для этого его нужно передать серверу:
Date.prototype.getTimezoneOffset()
//или
(new Date()).getTimezoneOffset()
На сервере опираясь на разницу смещений часовых поясов сервера и клиента можно вести расчет, например:
$z = -300; //смещение клиента в минутах
$z = date('Z')/60 + $z; //разница смещений сервера и клиента в минутах
$i = DateInterval::createFromDateString(-$z . ' minute'); //по смещению задан интервал, заданный отрицательным значением - восточнее сервера интервал будет добавляться, западнее вычитаться
$date = new DateTime('now');
echo 'Текущее время сервера ' . $date->format('Y-m-d H:i') . '<br>';
$date->add($i);
echo 'Текущее время у клиента ' . $date->format('Y-m-d H:i');
Зная часы работы клиента, можно рассчитать крайние значения времени, которые относительно времени сервера для клиента будут находиться в диапазоне от 9 утра до 9 вечера. Соответственно и сервер будет знать по какому его локальному времени можно звонить клиенту.
PS. Если расчеты проводить на клиенте, то тогда с целью указать диапазон времени работы сервера по времени клиента, в котором клиент может выбрать время для ответного звонка.
|