在PHP中增加日期的最简单方法?

时间:2009-03-18 23:34:14

标签: php datetime date strtotime date-manipulation

假设我有一个字符串,"2007-02-28",我可以编写哪些最简单的代码将其转换为"2007-03-01"?现在我只是使用strtotime(),然后添加24*60*60,然后使用date(),但只是想知道是否有更干净,更简单或更聪明的方法。

9 个答案:

答案 0 :(得分:78)

使用strtotime()

的干净方法
$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);

会给你2007-03-01

答案 1 :(得分:31)

添加86400更简洁,更简单。:)

高科技的方法是:

$date = new DateTime($input_date);
$date->modify('+1 day');
echo $date->format('Y-m-d');

但是,如果您在日期进行一系列转换,而不仅仅是明天找到,那真的是非常值得的。

答案 2 :(得分:17)

您可以在strtotime内部进行添加,例如

 $today="2007-02-28";
 $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));

答案 3 :(得分:6)

另一种方法是使用函数mktime()。这是非常有用的功能...

$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));

但我认为strtotime()在这种情况下更好......

答案 4 :(得分:5)

最简单的方法......

echo date('Y-m-d',strtotime("+1 day"));    //from today

从指定日期开始......

echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));

答案 5 :(得分:0)

您好,您可以尝试下面的内容,特别是如果您是法国人

$date = date('l j F Y');
#increment the date
$date2 = date('l j F Y', strtotime("+7 day"));

要用法语翻译,你可以使用setlocale()函数或下面的函数:

function fr_date($date){

    $date = explode(' ', $date);

    $date = str_replace('Monday','Lundi',$date);
    $date = str_replace('Tuesday','Mardi',$date);
    $date = str_replace('Wednesday','Mercredi',$date);
    $date = str_replace('Thursday','Jeudi',$date);
    $date = str_replace('Friday','Vendredi',$date);
    $date = str_replace('Saturday','Samedi',$date);
    $date = str_replace('Sunday','Dimanche',$date);

    $date = str_replace('January','Janvier',$date);
    $date = str_replace('February','Février',$date);
    $date = str_replace('March','Mars',$date);
    $date = str_replace('April','Avril',$date);
    $date = str_replace('May','Mai',$date);
    $date = str_replace('June','Juin',$date);
    $date = str_replace('July','Juillet',$date);
    $date = str_replace('August','Août',$date);
    $date = str_replace('September','Septembre',$date);
    $date = str_replace('October','Octobre',$date);
    $date = str_replace('November','Novembre',$date);
    $date = str_replace('December','Décembre',$date);

    $date = implode(' ',$date);
    return $date;

}

答案 6 :(得分:0)

$your_date = strtotime("1month", strtotime(date("Y-m-d")));
 $new_date = date("Y-m-d", $your_date++);

答案 7 :(得分:0)

使用 strtotime() 与日期格式

echo date('Y-m-d', strtotime('2007-02-28' . ' +1 day'));

答案 8 :(得分:-1)

 $early_start_date = date2sql($_POST['early_leave_date']);


        $date = new DateTime($early_start_date);
        $date->modify('+1 day');


        $date_a = new DateTime($early_start_date . ' ' . $_POST['start_hr'] . ':' . $_POST['start_mm']);
        $date_b = new DateTime($date->format('Y-m-d') . ' ' . $_POST['end_hr'] . ':' . $_POST['end_mm']);

        $interval = date_diff($date_a, $date_b);