Я использую Laravel 4 и пытаюсь рассчитать разницу между временем на сервере и экономией времени в базе данных в часах. Вот код:
Время на сервере=timeNowOnServer // 2016-02-03 19:05:43 Время, сохраненное в базе данных = setTime // 18:00:00
$timeNowOnServer = null;
$setTime = null;
$timeZone = $company->time_zone;
$company->save();
// My Time
$hour = substr($company->emp_auto_logout_time, 0, 2);
$setTime = Carbon::createFromTime($hour);
// Server Time Same as Mine
$timeNowOnServer = Carbon::now();
$timeNowOnServerSameAsMine = $timeNowOnServer->setTimezone($timeZone);
// Time Differnce Between SetTime and TimeOnServerSameAsMine
$timeDiff = $setTime->diffInHours($timeNowOnServerSameAsMine, $abs = false);
Например, если Server Time
— это 14:00:00, а Set Time
— это 19:00:00. Мой часовой пояс GMT +5 Pakistan
.
Что я делаю, так это добавляю настройку Server Time
в соответствии с временем пользователя, указав time zone
в 3-й последней строке приведенного выше кода.
Когда я использую diffInHour
, вместо 0 он дает мне -5 или 5. Это означает, что он использует UTC (Server Time)
, и поэтому дает неправильную разницу в часах.
Может кто-нибудь, пожалуйста, дайте мне знать, где я ошибаюсь?