2014-05-25 111 views
3

您好,我目前正在學習PHP的最新版本,我正在嘗試創建一個腳本來執行以下操作。捕獲一個人加入該網站的日期和時間;從加入日期和時間計算一年;然後,在每個新的一天過去之後,計算在到達未來日期之前的剩餘天數。
這是我迄今爲止PHP日期倒計時從加入日期到未來一年

<?php 
//This top half s working just fine 
$datejoin = new DateTime(); 
echo $datejoin->format('D M j h:i:s A Y') .'<br>'; 

$dateoneyear = new DateTime(); 
$dateoneyear->add(new DateInterval('P12M')); 
echo $dateoneyear->format('D M j h:i:s A Y') . '<br>'; 
'<br>'; 
$datetime1 = new DateTime(); 
$datetime2 = new DateTime(); 
$datetime2-> add(new DateInterval('P12M')); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days remaining'); 
?> 

我有被捕獲與計算的日期值這一問題上的「$ dateoneyear->添加(新DateInterval(‘P12M’));」,然後使用子方法來倒計時。
當然,我可能會接近這一切錯誤,但這是我能夠一起拉開。我一直在使用php.net/manual/en/來弄清楚如何使用sub命令,但所有使用的例子都已經插入了日期,例如03-25-2009。
由於我的日期是動態的,因此我需要從創建的日曆中獲取未來值並倒計時,但我似乎無法找到實現該日期的方法。

回答

1

所需的差異是「現在」和「到期」日期之間的天數。 到期日期爲給定「加入」日期後的12個月。

剩餘天數爲:

$dateJoin = new DateTime('2014/01/01'); 
$dateExpire = $dateJoin->add(new DateInterval('P12M')); 
$now = new DateTime(); 
$remaining = $now->diff($dateExpire); 

$daysRemaining = $remaining->format('%R%a'); 
echo 'days remaining :', $daysRemaining; 
+0

花了一點點找出邏輯,因爲手動結果從顯示的結果不同。不過,我終於明白,原來的日期是12個月的原因是因爲 非常感謝@RyanVincent;我非常感謝您及早回覆我的問題。計算完美! – cyberfool

+0

@cyberfoot,歡迎您。 –