我有代码:
$month = DateTime::createFromFormat('m/Y', $date);
if ($month) {
$month = $month -> format('01/m/Y');
}
echo "From ".$startMonth." to ".$endMonth = date("t/m/Y", strtotime($month));
当$date
是类似“05/2015”的字符串时。
返回:
2015年5月1日至2015年1月31日
但出于某种原因,这个月应该是01
,应该是05
?
它为什么这样做?它应该是
2015年5月1日至2015年5月31日
答案 0 :(得分:1)
除了在DateTime对象和unix时间戳之间进行不必要的切换和更改(当你可以使用DateTime对象完成整个事情时......你将'01/m/Y'
的格式化日期传递给{{1} } strtotime()
向/
函数指示日期为美国日期格式(strtotime()
):您应该使用mm/dd/yy
如果您想告诉'01-m-Y'
它是欧洲格式的日期,则-
用dd-mm-YYYY
}。
查看"本地化符号" PHP Docs page上的表格,用于解释strtotime()
但是,使用DateTime对象执行整个操作:
strtotime()