Php 只有年份返回错误数据的strotime()

Php 只有年份返回错误数据的strotime(),php,strtotime,Php,Strtotime,返回正确日期后 echo date('Y-m',strtotime('2009-3')); 但这仅仅是一年的时间,却返回了错误的数据 echo date('Y',strtotime('2009')); 这显示了本年度的情况。有什么问题吗因为只有在“2009”中才能创建有效的Unix时间戳。所以你需要像这样度过一个完整的日期: echo date('Y',strtotime('2009-04-07')); //^^^^^^^^^^ $date =

返回正确日期后

echo date('Y-m',strtotime('2009-3'));
但这仅仅是一年的时间,却返回了错误的数据

echo date('Y',strtotime('2009'));
这显示了本年度的情况。有什么问题吗

因为只有在“2009”中才能创建有效的Unix时间戳。所以你需要像这样度过一个完整的日期:

echo date('Y',strtotime('2009-04-07'));
                       //^^^^^^^^^^
$date = DateTime::createFromFormat("Y", "2009");
echo $date->format("Y");
手册中的引文也说明了这一点:

函数期望得到一个包含英文日期格式的字符串,并尝试将该格式解析为Unix时间戳

编辑:

如果您只有可以使用的年份,如下所示:

echo date('Y',strtotime('2009-04-07'));
                       //^^^^^^^^^^
$date = DateTime::createFromFormat("Y", "2009");
echo $date->format("Y");
输出:

2009

2009-3
2009
都没有正确的日期。它们不是日期,而是日期范围。仅供参考:您可以接受以下答案:如何最大程度地帮助您并解决您的问题()。我需要unix时间戳,只有年份,如“2009”、“2010”等等,现在该怎么办do@RejoanulAlam选择一个日期。@Rejoannulalam那么我的编辑对你有用吗?或者这个问题我们在哪里?@Rizier123事实上我需要unix的年时间戳。我怎样才能做到这一点??希望我的要求清楚now@RejoanulAlam
echo$date->getTimestamp()试试这个,我想这就是你想要/需要的。