date_add

(PHP 5 >= 5.3.0, PHP 7)

date_addПсевдоним DateTime::add()

Описание

Эта функция является псевдонимом: DateTime::add()

Коментарии

Автор:
Just add month(s) on the orginal date.

<?php
function add_date($orgDate,$mth){
 
$cd strtotime($orgDate);
 
$retDAY date('Y-m-d'mktime(0,0,0,date('m',$cd)+$mth,date('d',$cd),date('Y',$cd)));
  return 
$retDAY;
}
?>
2009-03-27 13:32:03
http://php5.kiev.ua/manual/ru/function.date-add.html
Автор:
This function allows the addition of day(s),month(s),year(s) to the original date while still preserving the Hours, minutes and seconds
You can also modify to add to hours, miuntes and even seconds.
 
<?php
function add_date($givendate,$day=0,$mth=0,$yr=0) {
     
$cd strtotime($givendate);
     
$newdate date('Y-m-d h:i:s'mktime(date('h',$cd),
   
date('i',$cd), date('s',$cd), date('m',$cd)+$mth,
   
date('d',$cd)+$daydate('Y',$cd)+$yr));
      return 
$newdate;
              }

?>
2010-01-10 05:19:19
http://php5.kiev.ua/manual/ru/function.date-add.html
<?php
function mysql_date_add($now null$adjustment )
{     
       
// normal mysql format is:   date_add(now(), INTERVAL 1 MONTH)
        // its close to the strtotime() format, but we need to make a few adjustments
        // first we lowercase everything, not sure if this is needed but it seems
        // to be both mysql conventions to be capitalized and php to lowercase this, so
        // i follow suit.
       
$adjustment strtolower($adjustment);
       
// next we want to get rid of the INTERVAL part, as neither it nor a corrisponding
        // keyword used in the strtotime() function.   remmeber its lowercase now.
       
$adjustment str_replace('interval'''$adjustment);
       
// now the adjustment is suppsoed to have a + or - next to it to indicate direction
        // since strtotime() can be used to go both ways.  We want to tack this one, but first
        // strip any white space off the begining of the $adjustment so we dont wind up with like
        //  +     1         when we need    +1
       
$adjustment '+' trim($adjustment);
       
// we should now be left with something like '+1 month'  which is valid strtotime() syntax!
        // next we need to handle the $now, normally people would pass now() if they want the current
        // time or a datetime/timestamp.    We will need to account for this as well, we also
        // want to make use of having a default to now() type of behavior.    we want to also
        // trim and lowercase what they send us just to make it easier to compair to
       
if (is_null($now) || strtolower(trim($now)) == 'now()')
        {
               
// defaulted to or requested a the current time
               
$now time();
        }
        else
        {
               
// here we are splitting out each part of the mysql timestamp , and storing it in the $parts array
                 
preg_match('/([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})/'$now$parts);
               
// now we use each of the parts to generate a timestamp from it
               
$now mktime($parts[4], $parts[5], $parts[6], $parts[2], $parts[3], $parts[1]);
        }
       
// now we finally call strtotime() with the properly formatted text and get the date/time
        // calculates done.  I specify its returned as an integer to make things play more nicely
        // with eachother in case the conversion fails.
       
$timestamp = (integer)strtotime($adjustment$now);
       
// finally we have the timestamp of the adjusted date nowe we just convert it back to the mysql
        // format and send it back to them.
       
return date('Y-m-d H:i:s'$timestamp);
}
?>
2013-08-18 08:41:18
http://php5.kiev.ua/manual/ru/function.date-add.html
When using DateTime::add() be careful that additions over Summertime changes will not always produce the expected results.  For instance, adding a day (interval = P1D) is probably expected to keep the same time when added to a date even over a summertime change. But adding 24 hours (interval = PT24H) does not seem to take into effect the time change.

When then checking the time difference after adding 24 hours after the clocks went forward, the time difference is only 23 hours.

<?php
date_default_timezone_set
('Europe/London');

$diff1Day = new DateInterval('P1D');
$diff24Hours = new DateInterval('PT24H');
$diff1440Minutes = new DateInterval('PT1440M');

// Clocks changed at 2014-03-30 02:00:00

$d0 = new DateTime('2014-03-29 08:00:00');

$d1 = new DateTime('2014-03-29 08:00:00');
// Add 1 day - expect time to remain at 08:00
$d1->add($diff1Day);
print_r($d1);

$d2 = new DateTime('2014-03-29 08:00:00');
// Add 24 hours - expect time to be 09:00
$d2->add($diff24Hours);
print_r($d2);

$seconds $d1->getTimestamp() - $d0->getTimestamp();
echo 
"Difference in Hours: " $seconds / (60 60) . "\n";
2014-04-15 15:09:05
http://php5.kiev.ua/manual/ru/function.date-add.html

    Поддержать сайт на родительском проекте КГБ