【发布时间】:2016-05-12 19:34:28
【问题描述】:
我正在使用 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,方法是在上面给定代码的最后3行中给出time zone。
当我使用 diffInHour 它而不是给我 0 时,它给我 -5 或 5。这意味着它正在使用 UTC (Server Time),这就是为什么给出错误的小时差。
谁能告诉我哪里错了?
【问题讨论】:
标签: php datetime laravel-4 laravel-5 php-carbon