问题
我使用下面的代码来获取下周的日期和第二周的日期.它适用于前几个记录,但后来开始给予1970年.
如果开始日期是12/01/2013,它会显示我的coorect结果:
下周:2013年1月19日
第二周:2013年1月26日
但是在另一个记录中,日期是16/05/2013,它显示如下
下周:1970年1月8日
第二周:1970年1月15日
请指导我可能出错的地方?
码
//Date of when game started
$starts_on = '12/01/2013';
//Next week's date from start date
$next_week = strtotime(date("d/m/Y", strtotime($starts_on)) . "+1 week");
$next_week = date('d/m/Y', $next_week);
//Second week's date from start date
$second_week = strtotime(date("d/m/Y", strtotime($starts_on)) . "+2 week");
$second_week = date('d/m/Y', $second_week);
echo $starts_on.", ".$next_week.", ".$second_week;
Run Code Online (Sandbox Code Playgroud)
您使用的格式日期错误.查看strtotime文档中的注释:
通过查看各个组件之间的分隔符来消除m/d/y或dmy格式的日期:如果分隔符是斜杠(/),则假设为美国m/d/y; 而如果分隔符是破折号( - )或点(.),则假定为欧洲dmy格式.
进一步检查文档:
不建议使用此函数进行数学运算.这是更好地使用
DateTime::add()和DateTime::sub()在PHP 5.3及更高版本,或DateTime::modify()在PHP 5.2.