代码之家  ›  专栏  ›  技术社区  ›  davr

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

  •  37
  • davr  · 技术社区  · 17 年前

    假设我有一根绳子进来, "2007-02-28" ,我能写的最简单的代码是什么? "2007-03-01" ?现在我只是在用 strtotime() 然后加入 24*60*60 然后使用 date() 但只是想知道是否有一种更清洁、更简单或更聪明的方法。

    8 回复  |  直到 8 年前
        1
  •  78
  •   Ólafur Waage    17 年前

    干净的方式 使用 strtotime()

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

    会给你2007-03-01

        2
  •  31
  •   chaos    17 年前

    增加86400更干净更简单。:)

    高科技的方法是:

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

    但是,如果你只是在日期上做一系列的转换,而不仅仅是在寻找明天,那么这实际上是非常有价值的。

        3
  •  17
  •   chaos    17 年前

    你可以在strtotime内部添加,例如

     $today="2007-02-28";
     $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
    
        4
  •  6
  •   mac    14 年前

    另一种方法是使用函数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() 在那种情况下更好…

        5
  •  5
  •   Biswadeep Sarkar    11 年前

    最简单的方法…

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

    或从指定日期开始…

    echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
    
        6
  •  0
  •   Aominé    9 年前

    你好,你可以在下面试试这个,尤其是如果你是法国人的话。

    $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;
    
    }
    
        7
  •  0
  •   Eatsleeprace Livelife    8 年前
    $your_date = strtotime("1month", strtotime(date("Y-m-d")));
     $new_date = date("Y-m-d", $your_date++);
    
        8
  •  -1
  •   ranojan    9 年前
     $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);