2011-03-21 76 views
4

我有存儲在數組中的日期:如何在PHP中以1(日/年)遞增日期?

$this->lines['uDate'] 

日期的格式是不固定的。我可以改變這個:

define('DATETIME_FORMAT', 'y-m-d H:i'); 

我怎樣才能增加我的uDate一定的天數或年數?


我的問題是與此相關的一個:
increment date by one month
然而,在我的情況下,動態的日期格式。
那麼,我可以這樣做嗎?

$time= $this->lines['uDate']; 
$time = date(DATETIME_FORMAT, strtotime("+1 day", $time)); 
$this->lines['uDate']= $time; 
+0

我會看的到存儲原始日期值的地方,以便發現了這個你可以進一步操作它,否則你將會重新發明「日期解析器」例程,從而遇到大量的麻煩。 – 2011-03-21 17:31:55

+0

常量不插入引號中。調用'date(DATETIME_FORMAT)',而不是'date(「DATETIME_FORMAT」)'。 – Charles 2011-03-21 17:40:23

回答

2
function add_date($givendate,$day=0,$mth=0,$yr=0) 
{ 
     $cd = strtotime($givendate); 
     $newdate = date('Y-m-d h:i:s', mktime(date('h',$cd), 
    date('i',$cd), date('s',$cd), date('m',$cd)+$mth, 
    date('d',$cd)+$day, date('Y',$cd)+$yr)); 
     return $newdate; 
} 

我在PHP幫助

4

date_add()

,並考慮更改,如:

define(DATETIME_FORMAT, 'y-m-d H:i'); 

$time = date(DATETIME_FORMAT, strtotime("+1 day", $time)); 
+1

這是黃金。不錯。 – amosrivera 2011-03-21 17:33:07

2

你可以使用一些簡單的計算來做到這一點,如果你有時間戳。

$date = strtotime($this->lines['uDate']); //assuming it's not a timestamp\ 
$date = $date + (60 * 60 * 24); //increase date by 1 day 
echo date('d-m-y', $date); 
$date = $date + (60 * 60 * 24 * 365); //increase date by a year 
echo date('d-m-y', $date); 

您也可以使用mktime()方法來做到這一點:http://php.net/manual/en/function.mktime.php