我在使用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");