php在指定时间上加天数,在PHP中向$ Date添加天数

我有一个以2010-09-17形式返回的日期作为mySQL查询的一部分

我想将变量$ Date2设置为$ Date5,如下所示:

$Date2 = $Date + 1

$Date3 = $Date + 2

等等..

以便它返回2010-09-18,2010-09-19等...

我试过了

date('Y-m-d', strtotime($Date. ' + 1 day'))

但这给了我$Date之前的日期。

以" Y-m-d"格式获取日期的正确方法是什么,以便在其他查询中使用它们?

通过向可变日期添加天数来计算PHP的将来日期的可能重复

您所要做的就是使用days而不是day,如下所示:

$Date ="2010-09-17";

echo date('Y-m-d', strtotime($Date. ' + 1 days'));

echo date('Y-m-d', strtotime($Date. ' + 2 days'));

?>

并正确输出:

2010-09-18

2010-09-19

它也仅使用day正确输出... date("Y-m-d", strtotime(2010-09-17 + 1 day))-> 2010-09-18,date("Y-m-d", strtotime(2010-09-17 + 2 day))-> 2010-09-19

只是尝试这种方式,它的工作。我仍然不知道为什么我在开始尝试的第一天就获得了价值。

如果我要添加一个天数变量怎么办?

@Carlos echo date(" Y-m-d",strtotime($ Date。+。$ variable。days));

不,这种方法根本不起作用。它返回2004年的某个日期。

如果使用的是PHP 5.3,则可以使用DateTime对象及其add方法:

$Date1 = '2010-09-17';

$date = new DateTime($Date1);

$date->add(new DateInterval('P1D')); // P1D means a period of 1 day

$Date2 = $date->format('Y-m-d');

看一下DateInterval构造函数手册页,了解如何构造其他添加到日期的句点(2天为'P2D',3天为'P3D',依此类推)。

如果没有PHP 5.3,您应该能够使用strtotime的方式(我已经对其进行了测试,并且它在5.1.6和5.2.10中均可使用):

$Date1 = '2010-09-17';

$Date2 = date('Y-m-d', strtotime($Date1 ." + 1 day"));

// var_dump($Date2) returns"2010-09-18"

抱歉,丹尼尔(Daniel),但是网络服务器运行php 5.2.6,所以这行不通

DateTime::construct使用与strtotime相同的机制来解析日期,因此您也可以执行new DateTime("+1 day $date"),这不需要5.3

我本来不是要拒绝投票的,但是我还是以某种方式做了= /

这是php 5.5+的实际答案

从PHP 5.2开始,您可以对DateTime对象使用Modify:

http://php.net/manual/en/datetime.modify.php

$Date1 = '2010-09-17';

$date = new DateTime($Date1);

$date->modify('+1 day');

$Date2 = $date->format('Y-m-d');

添加月份...(在较小的程度上,几年)时要小心

接受的答案只会给出15000+天的答案,而当您添加25000+天时,此答案也会给出答案。

您还可以在DateTimeImmutable()上查询此内容,并且获得修改后的副本,而无需更改原始副本。

以下是演示日期修改的小片段:

$date = date("Y-m-d");

//increment 2 days

$mod_date = strtotime($date."+ 2 days");

echo date("Y-m-d",$mod_date) ."

";

//decrement 2 days

$mod_date = strtotime($date."- 2 days");

echo date("Y-m-d",$mod_date) ."

";

//increment 1 month

$mod_date = strtotime($date."+ 1 months");

echo date("Y-m-d",$mod_date) ."

";

//increment 1 year

$mod_date = strtotime($date."+ 1 years");

echo date("Y-m-d",$mod_date) ."

";

您也可以使用以下格式

strtotime("-3 days", time());

strtotime("+1 day", strtotime($date));

您可以通过以下方式堆叠更改:

strtotime("+1 day", strtotime("+1 year", strtotime($date)));

请注意,此方法与其他答案中的方法之间的区别:除了将值+1 day和并置之外,您只需传递时间戳作为strtotime的第二个参数即可。

在天数中使用变量

$myDate ="2014-01-16";

$nDays = 16;

$newDate = strtotime($myDate . '+ '.$nDays.'days');

echo newDate('d/m/Y', $soma); //format new date

这是您查询的最简单解决方案

$date=date_create("2013-03-15"); // or your date string

date_add($date,date_interval_create_from_date_string("40 days"));// add number of days

echo date_format($date,"Y-m-d"); //set date format of the result

这里有一个简单的方法来解决这个问题。

$date ="2015-11-17";

echo date('Y-m-d', strtotime($date. ' + 5 days'));

?>

输出将是:

2015-11-22

从这里找到解决方案-如何在PHP中添加日期

所有人都必须使用以下代码:

$nday = time() + ( 24 * 60 * 60);

echo 'Now:       '. date('Y-m-d') ."

";

echo 'Next Day: '. date('Y-m-d', $nday) ."

";

您不应该这样,最终,秒会出现问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值