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

时间:2012-10-04 12:13:40

标签: php

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

我遇到了一个问题,即我的某个应用程序实例需要使用未来日期进行测试。即我想在2013年运行时测试应用程序。

如果我更改系统日期,那么它将正常工作,但其他实例也将生效。

我希望将来只有一个实例的日期,其余的应该按原样运行。

即使我使用日期('Y-m-d');它应该跳3个月并显示未来的日期。

并且我不想在默认日期添加秒,因为这可能是我的应用程序中的巨大变化。

4 个答案:

答案 0 :(得分:3)

这就是您以 testable 的方式编写应用程序的原因。

不好:

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

好:

function doSomething($ts = null) {
    if (!$ts) {
        $ts = time();
    }
    $date = date('Y-m-d', $ts);
    ...
}

答案 1 :(得分:2)

你可以自己创建日期功能。它将作为所有日期使用的钩子。

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

您可以将所有date更改为mydate。如果您决定切换回现状,请离开$jump = ''

答案 2 :(得分:0)

你可以做到

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

答案 3 :(得分:0)

我建议使用PHP5 DateTime类。它们有点冗长,但比旧式的PHP日期处理功能更强大。

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

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