PHP中的MySQL的DATE_ADD函数

时间:2010-11-01 10:45:19

标签: php

我需要在PHP中实现MySQL DATE_ADD功能,所以我采用了官方PHP网站上提供的功能“strtotime”documentation page,如下所示:

function get_x_months_to_the_future( $base_time = null, $months = 1 )
{
    if (is_null($base_time))
        $base_time = time();

    $x_months_to_the_future    = strtotime( "+" . $months . " months", $base_time );

    $month_before              = (int) date( "m", $base_time ) + 12 * (int) date( "Y", $base_time );
    $month_after               = (int) date( "m", $x_months_to_the_future ) + 12 * (int) date( "Y", $x_months_to_the_future );

    if ($month_after > $months + $month_before)
        $x_months_to_the_future = strtotime( date("Ym01His", $x_months_to_the_future) . " -1 day" );

    return $x_months_to_the_future;
} //get_x_months_to_the_future()

它运作完美,但我不明白为什么在$ month_before和$ month_after计算中,在这两种情况下,年份乘以12。这有什么不同,真的需要吗?我根本不知道为什么,并希望完全理解该代码。

1 个答案:

答案 0 :(得分:0)

我想我刚刚意识到为什么......因为它将岁月转化为几个月,然后又增加了其他月份......哦! : - )