2016-05-11 6 views
0

このタイムゾーンオフセット機能は、夏になると1時間を余分に追加します。それは冬の時間に動作します。タイムゾーンオフセット機能により、夏時間に1時間が余計に加算されます

誰が間違っているかを見ることができます:ここで

public static function Date_GetOffset($order) { 

     $tz = new DateTimeZone("Europe/Copenhagen"); 
     $date = new DateTime($order->order_datetime, $tz); 
     $trans = $tz->getTransitions(); 

     foreach ($trans as $k => $t) { 
      if ($t["ts"] > $date->format('U')) { 
       $DST = $trans[$k-1]['isdst']; 
       break;    
      } 
     } 

     if (empty($DST)) { 
      $DST = 0; 
     } 

     $config = JFactory::getConfig(); 
     $timezone = $config->get('offset'); 

     //$tz=timezone_open("Europe/London"); 
     $dateTimeGMT=date_create("now",timezone_open($timezone)); 
     $offset = timezone_offset_get($tz,$dateTimeGMT); 

     $offset = $offset/3600; 
     $offsetText = "+".(string)($DST + $offset)." hours"; 

     return date("Y-m-d H:i:s", strtotime($offsetText, strtotime($order->order_datetime))); 
} 

答えて

0

はフランス時間の一例である:

//[Modif oto]Auto Manage of summer time 
// Origine : $diff = ($pun_user['timezone'] + $pun_user['dst']) * 3600; 
if($pun_user['timezone'] == 1) {// Timezone of France 
    date_default_timezone_set('Europe/Paris'); //Forcing timezone 
    if(date('I')) $diff = 7200; // Summer? 
    else $diff = 3600; 
} 
else $diff = ($pun_user['timezone'] + $pun_user['dst']) * 3600; 

OR

$date_default_save = date_default_timezone_get(); 
date_default_timezone_set($pun_user['timezone']); 
if(date('I')) .... // User is in summer 
.... 
date_default_timezone_set($date_default_save); 
+0

は:-)ありがとうそして、どのように変換しますDSTで正しい日時になるための生の日時? –