2011-03-21 103 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