4

我的 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 年,所以我认为我做错了其他事情......我希望发送邮件时没有错误,因为它确实被发送了,但我还是会发布我的代码:

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

2 回答 2

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"
于 2012-08-02T12:04:48.553 回答
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');  
于 2012-08-02T11:33:09.583 回答