如何在php中默认设置时区?

时间:2016-03-15 08:33:03

标签: php

date_default_timezone_set('Asia/Kolkata');
$x ='2016-03-15';
echo date("j M [D] Y",$x);

但是,当我运行此代码时,它显示错误的输出:1月1日[星期四] 1970年

我希望输出如:2015年3月15日[星期二]。

请帮助我,这段代码有什么不妥。

3 个答案:

答案 0 :(得分:6)

您的问题标题具有误导性,您的时区设置很好。日期显示不是

date期望第二个(可选)参数是Unix时间戳,而不是日期。首先将您的日期转换为unix时间戳。

echo date("j M [D] Y",strtotime($x));

这可以在manual

上看到
  

string date(string $ format [,int $ timestamp = time()])

答案 1 :(得分:0)

您滥用日期功能:第二个参数必须是时间戳,而不是字符串。

参考:http://php.net/manual/en/function.date.php

为了从日期获取时间戳,您可以使用 mktime strtotime 函数。

答案 2 :(得分:-2)

strtotime - 将任何英文文本日期时间描述解析为Unix时间戳

date_default_timezone_set('Asia/Kolkata');
$x ='2016-03-15';
echo date("j M [D] Y",strtotime($x));

Reference