php代码没有正确地将gmt转换为ist


php code not converting gmt to ist properly

这是一个很小的问题,但我无法解决

我希望通过php将gmt转换为ist,为此我有以下代码

$timestamp = strtotime('Tue, 17 Dec 2013 07:23:56 +0000');
date_default_timezone_set("Asia/Calcutta");
echo date('r', $timestamp);

代码工作正常,现在我有了一个数组,通过它我可以获取时间,它是这种格式的

10-Dec-2015 10:45:02 +0000

我已存储在可变$maildate 中

现在,当我把这个变量放在像这样的代码中时

$timestamp = strtotime('$maildate');
date_default_timezone_set("Asia/Calcutta");
echo date('r', $timestamp);

我收到这个日期和时间Thu, 01 Jan 1970 05:30:00 +0530

有人能告诉我哪里出了问题吗

您需要去掉引号并从更新代码

$timestamp = strtotime('$maildate');
                      ^^         ^^

进入

$timestamp = strtotime($maildate);
                    //^^        ^^ Removed quotes

相反,您可以使用DateTime类作为

$date = DateTime::createFromFormat('d-M-Y H:i:s P',$var);
$date->setTimeZone(new DateTimeZone('Asia/Kolkata'));
echo $date->format('r');

查看此

$timestamp = strtotime($maildate);
date_default_timezone_set("Asia/Calcutta");
echo date('r', $timestamp);