PHP-将日期格式mm dd, YYYY加7天

68

我在数据库中有一个日期格式是 "March 3, 2011",我需要将其延长7天。我的意思是

$date = $date + 7
。是否有任何内置函数可以实现这一点?


2
可能是将天数添加到日期的重复问题。 - Gordon
你的数据库中日期类型是什么格式?最好的方法是将数据提取出来,通过自己的函数处理,将额外的天数加到字符串上,然后再放回数据库。 - a.stgeorge
在 http://stackoverflow.com/search?q=add+7+days+date+php 中还有许多相关内容。 - Gordon
7个回答

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

1
还有没有办法将最终形式与今天的日期进行比较?(例如,如果($date <当前日期){echo'日期已过去'}? - Michael
@Michael,strtotime 的结果是一个整数。这个整数代表自 UNIX 纪元(1970 年 1 月 1 日 00:00:00)以来的秒数。这些整数可以使用刚才你所用的精确代码进行比较。 - Matthew Scharley
@Michael,time()函数可以用来获取当前日期/时间作为UNIX时间戳进行比较。 - Matthew Scharley
是的,你说得对。无论如何,我使用了strtotime("now")而不是time()。 - Michael

24

strtotime中的"+1 month"问题

正如多篇博客所指出的那样,strtotime()函数在处理“+1 month”(即下一个月)时,对于不存在于随后一个月中的日期的处理方式不同于其他实现方式,例如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

22

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


完美运行。 - Muhammad Azeem

21

将日期转换为字符串的方法是:$dateString = $date->format('Y-m-d H:i:s'); - Marc Alexander

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

另外,为什么你将日期存储在数据库中的方式是这样的?

0
$date = date('Y-m-d',strtotime("+7 days", strtotime(date('Y-m-d'))));
此代码用于获取当前日期并在其基础上加上7天,最终返回一个形如'Y-m-d'的日期字符串。

0
onClose: function(selectedDate) {

    $("#dpTodate").datepicker("option", "minDate", selectedDate);
    var maxDate = new Date(selectedDate);

     maxDate.setDate(maxDate.getDate() + 6); //6 days extra in from date

     $("#dpTodate").datepicker("option", "maxDate", maxDate);
}

来自审核队列:我可以请求你在你的源代码周围添加一些上下文吗?仅有代码的答案很难理解。如果你能在你的帖子中添加更多信息,这将有助于提问者和未来的读者。 - RBT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接