strtotime开始和月末不能正常工作

时间:2015-04-10 12:04:14

标签: php date

我有代码:

$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日

1 个答案:

答案 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()