PHP添加1个月,但考虑到年度变化

时间:2013-01-23 03:27:42

标签: php date

我有以下功能只能从当月提取评论。我需要它不要在下个月提出任何意见。

我将下个月定义为$to_date +1如何更改此设置以自动确定何时在下一年,即阻止它在第13个月查看?感谢

Function to only pull comments from a date range of the current month
     $from_date = date('Y-m') . '1 00:00:00';
     $to_date = date('m') . '1 00:00:00'+1;
     $all_comments = Comment::find('all', 
     array(
         'conditions'=>array('response_date_and_time >= ? AND response_date_and_time <= ?', $from_date, $to_date )
     )
);

2 个答案:

答案 0 :(得分:2)

strototime可以为您做到这一点。您可以使用关键字“now + 1 month”,它将获取当前日期+1并返回unix时间戳,日期函数将转换为正确的月份。应该返回02

$to_date = date('m', strtotime('now + 1 month'));

答案 1 :(得分:1)

有两种方法。正如已经提到的,你可以使用strtotime:

$to_date = date('m', strtotime('now + 1 month')) . ' 00:00:00';

但我认为你也可以了解模数运算符%。基本上,模数将在除法后返回余数(在PHP中这是一个整数,在其他语言中(如JavaScript)它也将包括任何小数值)。在这种情况下,这意味着我们可以快速简便地确保月份包装永远不会高于12。

// get the modulus
$dt = ((date('m')+1)%12);
// bit of a trick. December is the 12th month. 12 % 12 is 0, which is invalid
// so we check to see if the month is 0, and if it is we use 12 instead.
$to_date = ($dt?$dt:12) . ' 00:00:00';