Допустим, ваш сервер находится в США и хранит даты в базе данных с местным временем по Гринвичу США -7.
Итак, вы отправляете локальное смещение -7 и смещение страны сотрудника, скажем, где-нибудь в Европе + 2.
Так что в основном вам просто нужно знать, что такое -7 -2 и его смещение на 9 часов, поэтому каждую дату, которую вы сохранили в базе данных, нужно добавить на 9 часов, чтобы представить время в Европе.
Это будет считать смещение:
fnGetOffset($source_gmt_offset ,$fltGmtOffset)
{
$intGmtOffest = $source_gmt_offset - $fltGmtOffset;
if($intGmtOffest <> 0)
{
return $intGmtOffest;
}
}
После того, как вы посчитаете смещение, вам просто нужно получить дату из БД и добавить к ней смещение.
Вот так:
$intUnixTimeStamp += $intGmtOffest*60*60;
Так что это правильный способ сделать это с помощью PHP.
И если вы хотите запросить сервер на основе выбранного пользователем времени, вам нужно вернуться назад -9.