Ignore:
Timestamp:
10/17/08 10:04:01 (16 years ago)
Author:
niltonneto
Message:

Ocorrência #359 - Problema horário da mensagem em relação ao TZ da mesma.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r504 r535  
    8282                        $msg_number = $sort_array_msg[$msg_range_begin-1]; 
    8383 
    84                         $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
     84                        $header = $this->get_header($msg_number); 
    8585                        if (!is_object($header)) 
    8686                                return false;                    
     
    101101                        //$return[$i]['msg_folder'] = $folder; 
    102102                         
    103                         $date_msg = date("d/m/Y",$header->udate); 
    104                         if (date("d/m/Y") == $date_msg) 
    105                                 $return[$i]['udate'] = date("H:i",$header->udate); 
     103                        $date_msg = gmdate("d/m/Y",$header->udate); 
     104                        if (gmdate("d/m/Y") == $date_msg) 
     105                                $return[$i]['udate'] = gmdate("H:i",$header->udate); 
    106106                        else 
    107107                                $return[$i]['udate'] = $date_msg; 
     
    171171                        $this->mbox = $this->open_mbox($msg_folder);             
    172172                 
    173                 $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
     173                $header = $this->get_header($msg_number); 
    174174                if (!$header) { 
    175                         $return['status_get_msg_info'] = "false"; 
     175                        $return['status_get_msg_info'] = "false";                        
    176176                        return $return; 
    177177                } 
     178                 
    178179                $all_header = explode("\n", imap_fetchheader($this->mbox, $msg_number, FT_UID)); 
    179180                $return_get_body = $this->get_body_msg($msg_number, $msg_folder); 
     
    198199                        $return['Forwarded'] = 'F'; 
    199200                } 
     201  
    200202                else { 
    201203                        $return['Answered']     = $header->Answered; 
     
    206208                $return['msg_folder'] = $msg_folder; 
    207209         
    208                 $date_msg = date("d/m/Y",$header->udate); 
     210                $date_msg = gmdate("d/m/Y",$header->udate); 
    209211                if (date("d/m/Y") == $date_msg) 
    210                         $return['udate'] = date("H:i",$header->udate); 
     212                        $return['udate'] = gmdate("H:i",$header->udate); 
    211213                else 
    212214                        $return['udate'] = $date_msg; 
    213215                 
    214216                $return['msg_day'] = $date_msg;  
    215                 $return['msg_hour'] = date("H:i",$header->udate); 
     217                $return['msg_hour'] = gmdate("H:i",$header->udate); 
    216218                 
    217219                if (date("d/m/Y") == $date_msg) //no dia 
    218220                { 
    219                         $return['fulldate'] = date("d/m/Y H:i",$header->udate); 
    220                         $return['smalldate'] = date("H:i",$header->udate); 
    221                          
    222                         $timestamp_now = strtotime("now"); 
    223                         $timestamp_msg_time = $header->udate; 
    224                         $timestamp_diff = $timestamp_now - $timestamp_msg_time; 
     221                        $return['fulldate'] = gmdate("d/m/Y H:i",$header->udate); 
     222                        $return['smalldate'] = gmdate("H:i",$header->udate); 
     223                         
     224                        $timestamp_now = strtotime("now");                       
     225            $timestamp_msg_time = $header->udate; 
     226                        // $timestamp_now is GMT and $timestamp_msg_time is MailDate TZ.  
     227                        // The variable $timestamp_diff is calculated without MailDate TZ. 
     228                        $pdate = date_parse($header->MailDate); 
     229                        $timestamp_diff = $timestamp_now - $timestamp_msg_time  + ($pdate['zone']*(-60)); 
    225230                         
    226231                        if (gmdate("H",$timestamp_diff) > 0) 
     
    242247                } 
    243248                else{ 
    244                         $return['fulldate'] = date("d/m/Y H:i",$header->udate); 
    245                         $return['smalldate'] = date("d/m/Y",$header->udate); 
     249                        $return['fulldate'] = gmdate("d/m/Y H:i",$header->udate); 
     250                        $return['smalldate'] = gmdate("d/m/Y",$header->udate); 
    246251                } 
    247252                 
     
    936941                foreach($msgs_to_exec as $msg_number => $command) 
    937942                { 
    938                         $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox , $msg_number), 80, 255); 
     943                        $header = $this->get_header($msg_number); 
    939944                        if (!is_object($header)) 
    940945                                return false; 
     
    951956                        $return[$i]['Flagged']          = $header->Flagged; 
    952957 
    953                         $date_msg = date("d/m/Y",$header->udate); 
    954                         if (date("d/m/Y") == $date_msg) 
    955                                 $return[$i]['udate'] = date("H:i",$header->udate); 
     958                        $date_msg = gmdate("d/m/Y",$header->udate); 
     959                        if (gmdate("d/m/Y") == $date_msg) 
     960                                $return[$i]['udate'] = gmdate("H:i",$header->udate); 
    956961                        else 
    957962                                $return[$i]['udate'] = $date_msg; 
     
    14151420                for ($i=1; $i<=$num_msgs; $i++) 
    14161421                { 
    1417                         $header = imap_headerinfo($this->mbox, $i, 80, 255); 
     1422                        $header = $this->get_header($i); 
    14181423                        // List UNSEEN messages. 
    14191424                        if($search_box_type == "UNSEEN" &&  (!trim($header->Recent) && !trim($header->Unseen))){ 
     
    21132118                        foreach($messages as $msg_number) 
    21142119                        { 
    2115                                 $header = @imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $msg_number), 80, 255); 
     2120                                $header = $this->get_header($msg_number); 
    21162121                                if (!is_object($header)) 
    21172122                                        return false; 
     
    21262131                                $return[$j][$i]['Flagged']              = $header->Flagged; 
    21272132         
    2128                                 $date_msg = date("d/m/Y",$header->udate); 
    2129                                 if (date("d/m/Y") == $date_msg) 
    2130                                         $return[$j][$i]['udate'] = date("H:i",$header->udate); 
     2133                                $date_msg = gmdate("d/m/Y",$header->udate); 
     2134                                if (gmdate("d/m/Y") == $date_msg) 
     2135                                        $return[$j][$i]['udate'] = gmdate("H:i",$header->udate); 
    21312136                                else 
    21322137                                        $return[$j][$i]['udate'] = $date_msg; 
     
    22852290        function get_msg($uid_msg,$name_box, $mbox_stream ) 
    22862291        { 
    2287                 $header = @imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $uid_msg), 80, 255);          
     2292                $header = $this->get_header($uid_msg);          
    22882293                $subject = $this->decode_string($header->fetchsubject); 
    22892294                $from = $header->from[0]->mailbox; 
    22902295                if($header->from[0]->personal != "") 
    22912296                        $from = $header->from[0]->personal; 
    2292                 $ret_msg = $this->decode_string($from) . "--" . $subject . "--". date("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size); 
     2297                $ret_msg = $this->decode_string($from) . "--" . $subject . "--". gmdate("d/m/Y",$header ->udate)."--". $this->size_msg($header->Size); 
    22932298                return $ret_msg;                     
    22942299        }        
     
    25312536                return false; 
    25322537        } 
     2538        function get_header($msg_number){ 
     2539                $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
     2540                if (!is_object($header)) 
     2541                        return false; 
     2542                // Prepare udate from mailDate (DateTime arrived with TZ) for fixing summertime problem. 
     2543                $pdate = date_parse($header->MailDate); 
     2544                $header->udate +=  $pdate['zone']*(-60); 
     2545                return $header; 
     2546        } 
    25332547} 
    25342548?> 
Note: See TracChangeset for help on using the changeset viewer.