如何在PHP中将当前日期添加一定天数?

我已经获得当前日期:

$today = date('y:m:d');

只需要添加x天数

有帮助吗?

解决方案

php 支持c样式日期函数。您可以通过 strtotime 函数使用英语样式短语添加或减去日期。实例...

$Today=date('y:m:d');

// add 3 days to date
$NewDate=Date('y:m:d', strtotime("+3 days"));

// subtract 3 days from date
$NewDate=Date('y:m:d', strtotime("-3 days"));

// PHP returns last sunday's date
$NewDate=Date('y:m:d', strtotime("Last Sunday"));

// One week from last sunday
$NewDate=Date('y:m:d', strtotime("+7 days Last Sunday"));

<select id="date_list" class="form-control" style="width:100%;">
<?php
$max_dates = 15;
$countDates = 0;
while ($countDates < $max_dates) {
    $NewDate=Date('F d, Y', strtotime("+".$countDates." days"));
    echo "<option>" . $NewDate . "</option>";
    $countDates += 1;
}
?>

其他提示

一天是86400秒。

$tomorrow = date('y:m:d', time() + 86400);

添加x no的最简单方法。天.. ..

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

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

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

date_add() 功能应该做你想要的。另外,请查看 的文档(非正式的,但官方的文档有点稀疏)。 DateTime 对象,它比PHP中的过程函数更好用。

使用php 5.3

    $date = new DateTime();
    $interval = new DateInterval('P1D');
    echo $date->format('Y-m-d') , PHP_EOL;
    $date->add($interval);
    echo $date->format('Y-m-d'), PHP_EOL;
    $date->add($interval);
    echo $date->format('Y-m-d'), PHP_EOL;

将输出

2012年12月24日

2012-12-25

2012-12-26

如果您需要在多个地方使用此代码,那么我建议您添加一个简短的函数,以使代码更简单,更容易测试。

function add_days( $days, $from_date = null ) {
    if ( is_numeric( $from_date ) ) { 
        $new_date = $from_date; 
    } else { 
        $new_date = time();
    }

    // Timestamp is the number of seconds since an event in the past
    // To increate the value by one day we have to add 86400 seconds to the value
    // 86400 = 24h * 60m * 60s
    $new_date += $days * 86400;

    return $new_date;
}

然后你可以在任何地方使用它:

$today       = add_days( 0 );
$tomorrow    = add_days( 1 );
$yesterday   = add_days( -1 );
$in_36_hours = add_days( 1.5 );

$first_reminder  = add_days( 10 );
$second_reminder = add_days( 5, $first_reminder );
$last_reminder   = add_days( 3, $second_reminder );

将15天添加到选择元素(使用“Alive to Die”建议)

<select id="date_list" class="form-control" style="width:100%;">
<?php
$max_dates = 15;
$countDates = 0;
while ($countDates < $max_dates) {
    $NewDate=Date('F d, Y', strtotime("+".$countDates." days"));
    echo "<option>" . $NewDate . "</option>";
    $countDates += 1;
}
?>

$NewDate=Date('Y-m-d', strtotime("+365 days"));
  

echo $ NewDate; // 2020年5月21日

$ NewTime = mktime(日期('G'),日期('i'),日期('s'),日期('n'),日期('j')+ $ DaysToAdd,日期( 'Y'));

来自 mktime文档

  

mktime()对于进行日期算术和验证很有用,因为它会自动计算超出范围输入的正确值。

此方法的优点是您可以在易于阅读的代码行中添加或减去任何时间间隔(小时,分钟,秒,天,月或年)。

请注意,性能存在折衷,因为由于对date()函数的所有调用,此代码比strtotime(“+1天”)慢约2.5倍。如果您处于循环中,请考虑重复使用这些值。

<?php
$dt = new DateTime;
if(isset(<*>GET['year']) && isset(<*>GET['week'])) {
    $dt->setISODate(<*>GET['year'], <*>GET['week']);
} else {
    $dt->setISODate($dt->format('o'), $dt->format('W'));
}
$year = $dt->format('o');
$week = $dt->format('W');
?>

<a href="<?php echo <*>SERVER['PHP_SELF'].'?week='.($week-1).'&year='.$year; ?>">Pre Week</a> 
<a href="<?php echo <*>SERVER['PHP_SELF'].'?week='.($week+1).'&year='.$year; ?>">Next Week</a>
<table width="100%" style="height: 75px; border: 1px solid #00A2FF;">
<tr>
<td style="display: table-cell;
    vertical-align: middle;
    cursor: pointer;
    width: 75px;
    height: 75px;
    border: 4px solid #00A2FF;
    border-radius: 50%;">Employee</td>
<?php
do {
    echo "<td>" . $dt->format('M') . "<br>" . $dt->format('d M Y') . "</td>\n";
    $dt->modify('+1 day');
} while ($week == $dt->format('W'));
?>
</tr>
</table>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top