2011-03-02 50 views
33

我有这种格式的日期2011年3月3日在数据库中,我需要延长7天。我的意思是php - 添加+日期格式7天mm dd,YYYY

 $date = $date + 7
。是否有任何构建功能来做到这一点?

+1

可能重复(HTTP:/ /stackoverflow.com/questions/2332681/add-number-of-days-to-a-date) – Gordon 2011-03-02 23:27:39

+0

数据库中的日期类型是什么格式?最好的办法是将数据拉出并通过自己的函数运行,将额外的日子递增到字符串,然后将其弹回到数据库中。 – 2011-03-02 23:27:46

+0

以及更多http://stackoverflow.com/search?q=add+7+days+date+php – Gordon 2011-03-02 23:28:10

回答

97
$date = "Mar 03, 2011"; 
$date = strtotime($date); 
$date = strtotime("+7 day", $date); 
echo date('M d, Y', $date); 
+1

还有无论如何比较最后的形式和今天的日期吗? (例如,如果($ date <当前日期){echo'日期在过去'}} – Michael 2011-03-02 23:59:27

+0

@Michael strtotime的结果是一个整数,该整数表示自UNIX纪元以来的秒数(1970年1月1日00: 00:00)。这些整数可以用你刚刚使用的确切代码进行比较。 – 2011-03-03 00:23:29

+0

@Michael'time()'函数可以用来比较当前的日期/时间作为UNIX时间戳 – 2011-03-03 00:40:55

3

$oneweekfromnow = strtotime("+1 week", strtotime("<date-from-db>")); 

在另一方面,你为什么在那样的数据库中的日期?

16

的“+1个月”的问题用的strtotime

正如一些网友指出,的strtotime()解决了“+1月”(“下月”)问题上不存在中日接下来的一个月与其他实现例如MySQL不同。

$dt = date("Y-m-d"); 
echo date("Y-m-d", strtotime("$dt +1 day")); // PHP: 2009-03-04 
echo date("Y-m-d", strtotime("2009-01-31 +2 month")); // PHP: 2009-03-31 
5

echo date('d/m/Y', strtotime('+7 days'));

+0

最后的答案为我工作!好而简单 - 欢呼! – Notorious 2017-05-18 09:43:51

6

另一个更近和对象样式的方式做到这一点:

$date = new DateTime('now'); 
$date->add(new DateInterval('P7D')); 

php doc of datetime add

的[天数添加到日期]