0

我正在做我自己的日历。为了更改为下个月和上个月,我使用此功能:

date('m',"-1 months");
date('m',"+1 months");

但是,当我去下个月时,我不能再使用它了,因为-1+1总是取自now().

假设我不能对那个偏移量使用动态数字,我的意思是

date('m',"$x months");

如何在特定日期添加或减去 1 个月?

比如这个日期...

$date_today = strtotime($_GET['date']);
$next_month = $date_today +/- 1 month ?!?!??! 
4

4 回答 4

3
$next_month = strtotime('+1 month',$date_today);
于 2012-08-16T15:44:40.850 回答
2

使用strtotime...

$next_month = strtotime("+1 month");

将为您提供一个 unix 时间戳,您可以将其传递给date...

echo date("m", $next_month);
于 2012-08-16T15:44:25.410 回答
1

我目前为具有相同问题的多个站点运行日历。我最终将当前可查看的月份存储为变量,或者当有人单击下个月或上个月时$_SESSION将其作为对象传递。$_POST

当你在 next 或 prev 第二次被击中时调用它(或第一次)会是这样的

if(!isset($_SESSION['viewablemonth']) && $_SESSION['viewablemonth'] = '') {
    $_SESSION['viewablemonth'] = date("m.d.Y");
}

结束然后做你的月份加法或减法:

$_SESSION['viewablemonth'] = strtotime("+1 month", $_SESSION['viewablemonth']);
于 2012-08-16T15:48:00.117 回答
0

您可以将 strtotimes 与参考日期混合,这样:

$next_month=strtotime("+1 month");  // assumes today
$following_month=strtotime("+1 month", $next_month);

http://uk.php.net/manual/en/function.strtotime.php 采用两个参数并假设第二个参数是 time() 如果省略则为当前时间戳

于 2012-08-16T15:45:08.260 回答