php日期的麻烦

时间:2012-08-25 02:20:37

标签: php date

我试图根据今天的日期(2012年8月24日)计算以下三个值:

  1. 本月第一个星期六的日期。
  2. 本月第三个星期六的日期。
  3. 下个月第一个星期六的日期。
  4. 这就是我在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日返回。我的代码出了什么问题?

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');