2014-10-02 106 views
0

无法获得将字符串日期增加一天的方法。php日期从数组日期增加

因此,它以30/01/2001为例。

$linedata[8] = 30/01/2001; 

然后我使用日期分析表格格式。

$thetime = date_parse_from_format("j/n/Y",$linedata[8]); 

返回值是数组。是否有可能从这个数组中增加日期,或者我应该用不同的函数解析日期?

回答

1

你不想使用date_parse_from_format(),因为这只是给你很多的日期部分,它需要你修改合适的部分,然后重新组装它们。你也有闰年的问题,并在本月的最后一天工作。

你想用DateTime::createFromFormat()它给你一个DateTime对象,它是易于使用和处理之类的东西闰年和天一个月数:

$date = DateTime::createFromFormat("j/n/Y", '30/01/2001'); 
$date->modify('+1 day'); 
echo $date->format('Y-m-d'); 

Demo

+0

看起来整洁但我返回错误,致命错误:调用一个非对象的成员函数modify().....它是一个PHP版本的问题? – Pat 2014-10-02 14:13:16

+0

你使用的是什么版本? [这将使用PHP 5.3+](http://3v4l.org/Xfo94) – 2014-10-02 14:17:06

+0

版本是5.4.22。我只是检查了修改功能,并应该罚款为5.2.0 – Pat 2014-10-02 14:20:01

0

你可以增加这样的日期:

$thetime["day"]++; 

$thetime["day"] = $thetime["day"] + 1; 

那么你就可以得到递增日期这样

$idate = $thetime["day"]."/".$thetime["month"]."/".$thetime["year"]; 
+0

2月28日非闰年会发生什么?还是1月31日?这完全打破了。 – 2014-10-02 14:10:42

0

这会工作(提供$ linedata [8]包含日期):

$thetime = date('j/n/Y', strtotime($linedata[8] . ' +1 day')); 
+0

该日期格式不是[strtotime可以使用](http://php.net/manual/en/datetime.formats.date.php)。 – 2014-10-02 14:09:15