PHP:使用DateTime类获取九月的第一天


PHP: get the first day of september using DateTime-Class

我在使用DateTime类时遇到问题。我试着得到九月的第一天:

$date = DateTime::createFromFormat('Y/d/m', "2014/30/09");
echo "<br />this day: ".$date->format("Y/d/m");
$date->modify('last day of october');
echo "<br />works: first day of october: ".$date->format("Y/d/m");
// Output: 2014/31/10
$date->modify('first day of september');
echo "<br />dont work: first day of september: ".$date->format("Y/d/m");
// Output: 2014/31/10
$date->modify('first day of august');
$date->modify('+1 month');
echo "<br />works: first day of september: ".$date->format("Y/d/m");
// Output: 2014/01/09

有人能帮我吗?

我们正在Debian 3.2.63-2+deb7u2x86_64 上运行:PHP版本5.4.36-0+deb7u3

默认时区为:欧洲/柏林

如果我们知道第一天总是表示为1,为什么我们不能只使用:

$date->modify('September 1');

当使用以前的modify调用时,它会产生所需的输出。

完整代码:

<?php
$date = DateTime::createFromFormat('Y/d/m', "2014/30/09");
echo "<br />this day: ".$date->format("Y/d/m");
$date->modify('last day of october');
echo "<br />works: first day of october: ".$date->format("Y/d/m");
$date->modify('September 1');
echo "<br />dont work: first day of september: ".$date->format("Y/d/m");
$date->modify('first day of august');
$date->modify('+1 month');
echo "<br />works: first day of september: ".$date->format("Y/d/m");
$new_date = DateTime::createFromFormat('Y/d/m', "2014/15/09");
echo "Date To be changed: ".$new_date->format("Y/d/m");
$new_date->modify('first day of september');
echo "<br><br><b>Changed Date : </b><br> First day of september: ".$new_date->format("Y/d/m");