返回正确的日期后
echo date('Y-m',strtotime('2009-3'));
但这只是年度时返回的错误数据
echo date('Y',strtotime('2009'));
显示当前年份。那里有什么问题
答案 0 :(得分:2)
因为只有" 2009" strtotime()
无法创建有效的Unix时间戳。所以你需要传递这样的完整日期:
echo date('Y',strtotime('2009-04-07'));
//^^^^^^^^^^
手册中的引用也显示了这一点:
函数期望被赋予包含英文日期格式的字符串,并会尝试将该格式解析为Unix时间戳
修改强>
如果您只有年份,可以使用DateTime::createFromFormat,如下所示:
$date = DateTime::createFromFormat("Y", "2009");
echo $date->format("Y");
输出:
2009