我正在尝试设置开始日期&记录呼叫时自动为用户提供当前日期和时间。这是在加载视图之前设置的。
代码正在运行,但它没有考虑我的时区,它落后于英国时间一小时GMT。
如何确保时区正确无误。
class CustomCallsController extends SugarController
{
public function action_log_inbound()
{
global $timedate;
if(!isset($timedate) || empty($timedate))
{
$timedate = new TimeDate();
}
// get user for calculation
$user = (empty($user)) ? $this->user : $user;
$this->bean->direction = 'Inbound';
$this->bean->date_start = $timedate->asUser($timedate->getNow(), $user);
echo $this->bean->date_start;
$this->view = 'edit';
}
}
答案 0 :(得分:1)
上面的代码是正确的,我没有在用户设置中正确设置时区。它设置为GMT而不是GMT +1
答案 1 :(得分:0)
使用$ timedate-> to_display_date_time
global $timedate;
$timedate->to_display_date_time($timedate->nowDb());
答案 2 :(得分:0)
在大多数情况下,需要引用实际创建/更新/删除/等的用户。记录你可以使用
global $current_user;
然后您的代码可能如下所示:
$this->bean->date_start = $timedate->asUser($timedate->getNow(), $current_user);
答案 3 :(得分:0)
我已经搜索了很多来改变SugarCRM默认的GMT时区。当我创建新的潜在客户时,创建的日期和修改日期将使用GMT时间更新。最后我改变了Sugar核心文件以解决问题。
我在/include/SugarDateTime.php
文件中更改了以下功能。现在使用我的自定义时区进行创建。
public function setTimezone ($timezone)
{
// my custom timezone
$timezone = "America/Los_Angeles";
parent::setTimezone($timezone);
return $this;
}
注意:它将反映此setTimezone函数正在调用的区域。当我创造新的领导时,它对我有用。