date_default_timezone_set('Asia/Kolkata');
$x ='2016-03-15';
echo date("j M [D] Y",$x);
但是,当我运行此代码时,它显示错误的输出:1月1日[星期四] 1970年
我希望输出如:2015年3月15日[星期二]。
请帮助我,这段代码有什么不妥。
答案 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));