2012-08-16 74 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