2012-08-02 34 views
4

我的PHP郵件發送錯誤的日期&時間。 我已經把我的PHP時間:PHP錯誤的時區郵件

date_default_timezone_set('Europe/Brussels'); 

,當我

echo date('r'); //returns correctly: Thu, 02 Aug 2012 13:28:00 

我得到正確的時間。但是,當我發送郵件時,郵件的日期是現在的時間+ 1天+ 1小時。

我搜索了一下,發現一些舊的文檔,它是一個PHP錯誤或左右,但那些日期從2001年和2005年,所以我認爲我在做別的錯誤...我期望theres沒有錯誤郵件發送,因爲它不被髮送,但無論如何,我會發表我的代碼:

<?php 
    session_start(); 
    date_default_timezone_set('Europe/Brussels'); 
    $receiver = '[email protected]'; 
    $subject = 'Test'; 
    $message = 'This is a test'; 
    $receiver = $email; 
    $headers = "From: [email protected]" . "\r\n" . "X-Mailer: PHP/" . phpversion(); 
    if(mail($receiver,$subject,$message,$headers)){ 
     //This is done 
    } 
?> 

回答

2

閱讀: -

http://php.net/manual/en/function.date-default-timezone-set.php

http://php.net/manual/en/function.date-default-timezone-get.php

試試這個

date_default_timezone_set('America/New_York'); 
//

ini_set('date.timezone', 'America/Los_Angeles'); 
+0

讀吧 - 我假設郵件功能使用.ini中的date.timezone?雖然我不太明白我該如何修復它... – jdepypere 2012-08-02 11:37:29

+0

我已經更新我的答案,請看看ini_set函數在你的php文件中使用。請看看並讓我知道它是否工作。 – 2012-08-02 12:01:22

+0

使用ini_set('date.timezon','Europe/Brussels');,它工作正常,非常感謝!現在我只需要弄清楚如何在.htaccess中設置它,然後我不必在每個頁面上設置它,並且我無法訪問php.ini – jdepypere 2012-08-02 12:15:30

3

這是你的php.ini的配置錯誤
在php.ini,搜索:

; date.timezone 

取代白衣:

date.timezone = America/New_York 

,並重新啓動Apache支持時區

列表:
http://www.php.net/manual/en/timezones.php

編輯: htaccess的,時區應該以這種方式使用:

php_value date.timezone "Europe/Brussels" 
+0

謝謝,雖然沒有訪問php.ini因爲它是一個共享服務器,但我會嘗試在htaccess中設置.htaccess – jdepypere 2012-08-02 12:16:06

+0

,時區應該以這種方式使用: 'php_value date.timezone「歐洲/布魯塞爾」'(編輯的第一篇文章) – Julien 2012-08-02 12:19:55