2013-07-03 53 views
2

我試圖設置開始日期&時間自動記錄到呼叫用戶當前的日期和時間。這是在加載視圖之前設置的。以編程方式設置呼叫的開始日期和時間編輯視圖

該代碼正在工作,但它沒有考慮到我的時區,它是一小時後,在英國時間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'; 
} 
} 

回答

1

上面的代碼是正確的,我沒有在用戶設置中正確設置時區。它被設置爲GMT未北京時間

0

利用$ timedate-> to_display_date_time

global $timedate; 
$timedate->to_display_date_time($timedate->nowDb()); 
0

在大多數情況下,當有必要引用一個用戶實際創建/更新/刪除/等。記錄您可以使用

global $current_user; 

,然後你的代碼可能看起來像:

$this->bean->date_start = $timedate->asUser($timedate->getNow(), $current_user); 
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函數調用的那些區域。它對我有用,當時我正在創建一個新的領導。

相關問題