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

但是当我运行这段代码就显示错误的输出:1月1日[周四] 1970年如何在PHP中默认设置时区?

,我想等的输出:3月15日[周二] 2015年

请帮帮我,什么是错的在这个代码中。

+4

''2016-03-15''不是一个时间戳,你可能有一个PHP提出的警告(如果你已经设置它们显示) –

+0

启用你的PHP警告:'一个非正确形式的数值在第3行遇到# – pes502

+0

我不知道有时区是-46年...每天学习新东西... – Carpetsmoker

回答

-2

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

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

Reference

+2

这不会提供问题的答案... – cybermonkey

6

你的问题的标题有误导之嫌,您的时区设置就好了。日期显示不是。

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

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

这可以在manual

字串的日期可以看出(字符串$格式[摘要$时间戳=时间()])