Php 默认日期()应提前3个月

Php 默认日期()应提前3个月,php,Php,我的服务器有许多应用程序实例 我遇到了一个问题,我的一个应用程序实例需要在未来的日期进行测试。i、 e我想测试该应用程序,因为它将在2013年运行 如果我更改了系统日期,那么它将正常工作,但其他实例也会受到影响 我只想要一个实例的未来日期,其余的应该按原样工作 i、 e如果我使用日期(“Y-m-d”);它应该跳跃3个月,并显示未来的日期 我不想在默认日期上增加秒数,因为这可能是我的应用程序中的一个巨大变化 你可以这么做 date('Y-m-d', time() + 3 * 30 * 24 * 3

我的服务器有许多应用程序实例

我遇到了一个问题,我的一个应用程序实例需要在未来的日期进行测试。i、 e我想测试该应用程序,因为它将在2013年运行

如果我更改了系统日期,那么它将正常工作,但其他实例也会受到影响

我只想要一个实例的未来日期,其余的应该按原样工作

i、 e如果我使用日期(“Y-m-d”);它应该跳跃3个月,并显示未来的日期

我不想在默认日期上增加秒数,因为这可能是我的应用程序中的一个巨大变化

你可以这么做

date('Y-m-d', time() + 3 * 30 * 24 * 3600);

这就是为什么要以可测试的方式编写应用程序

不好:

function doSomething() {
    $date = date('Y-m-d');
    ...
}
好:


您可以创建自己的日期函数。它将成为所有日期用法的挂钩

function mydate($format) {
    $jump = ' +3 months';
    return date($format, strtotime(date($format) . $jump));
}

您可以将所有出现的
date
更改为
mydate
。如果您决定切换回present,只需保留
$jump='

我建议使用PHP5 DateTime类。它们有点冗长,但比老式的PHP日期处理函数强大得多

$dateNow = new DateTime();
$dateAhead = $dateNow->add(DateInterval::createFromDateString('3 months'));

print $dateAhead->format('Y-m-d');

我的问题是,如果我回显日期(“Y-m-d”),我需要从现在起提前3个月的日期。我不想更改我的服务器日期,因为这会影响其他应用程序。您可以从手册中查看。您知道,月份并不都是30天。所有其他答案(包括我的答案)都在建议如何延长三个月,但这是唯一真正理解问题本质的答案。
$dateNow = new DateTime();
$dateAhead = $dateNow->add(DateInterval::createFromDateString('3 months'));

print $dateAhead->format('Y-m-d');