2012-08-16 73 views
0

我正在做我自己的日历。为了改变到下一个和前几个月,我用这个函数:在PHP中的日期偏移量

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 ?!?!??! 
+1

我怀疑你使用的是字面意义上的“'date('m',” - 1 months“)'”。 – deceze 2012-08-16 15:44:41

回答

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

http://uk.php.net/manual/en/function.strtotime.php 带两个参数,并假定第二个参数是时间()当前时间戳如果ommitted

+0

这就是我需要的! THKS! – Andrew 2012-08-16 15:49:19

2

使用strtotime ...

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

会给你一个Unix时间戳,您可以传递给date ...

echo date("m", $next_month); 
+0

是的,从现在开始,下个月会给我()...但我怎么能从特定的日期做到这一点? – Andrew 2012-08-16 15:45:32

3
$next_month = strtotime('+1 month',$date_today); 
+0

这就是我需要的! THKS! – Andrew 2012-08-16 15:50:47

+0

如果它适合您,请务必将其标记为答案。 – 2012-08-16 15:52:09

1

我目前运行一个日历多个站点的:3210您可以参考日期,以便混合strtotimes了同样的问题。我最终将当前可查看的月份存储为$_SESSION变量,或者在有人点击下一个或前一个月时将其作为$_POST对象传递。

当你把它当一个或下一个先前被打第二会时间(或第一次)会是这样的

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

末,然后做你一个月的加法或减法:

$_SESSION['viewablemonth'] = strtotime("+1 month", $_SESSION['viewablemonth']); 
+0

+1您需要告诉脚本在哪个月查看。并将其用于下一个prev链接 – Waygood 2012-08-16 15:49:34

+0

@Waygood通过将其存储在可通过的变量中,将允许他执行并将跟踪他正在查看的当前月份。 – 2012-08-16 15:57:26

+0

对不起OP的评论不是你。 – Waygood 2012-08-17 10:10:28