我试图根据今天的日期(2012年8月24日)计算以下三个值:
这就是我在PHP脚本中的表现:
// Returns August 2012
$this_month = date("F Y");
// Returns September 2012
$next_month = date("F Y", strtotime("next month"));
// Returns August 04th, Saturday
$t_sat_1st=date('U', strtotime($this_month.' First Saturday'));
// Returns August 18th, Saturday
$t_sat_3rd=date('U', strtotime($this_month.' Third Saturday'));
// Returns September 08th, Saturday
$n_sat_1st=date('U', strtotime($next_month.' First Saturday') );
为什么最后一行代码返回了错误的日期?我希望它能在2012年9月1日返回。我的代码出了什么问题?
答案 0 :(得分:2)
我不知道为什么你的代码不能完全正常工作,必须是它的解析方式。 但试试
$n_sat_1st=date('U', strtotime('first saturday of ' . $next_month) )
注意'有'是必要的。 此代码仅适用于5.3 +
应该注意的是,显然这些字符串中的一些显然只能在PHP 5.3中使用,特别是:
例如,“本月的第一天”和“本月的最后一天”。 根据在另一个网站上发现的信息,“xxx日” 功能已在PHP 5.3中添加。
对此页面的评论 - http://www.php.net/manual/en/datetime.formats.relative.php
我已经在windows和ubuntu上测试过这个php 5.3和5.4并且它可以工作。
如果这不起作用,请尝试此
$d = new DateTime($next_month);
$d->modify('first saturday of this month');
echo $d->format('U');