将天数增加到 php 当前日期()

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/277247/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 22:11:45  来源:igfitidea点击:

Increase days to php current Date()

phpdatedays

提问by

How do I add a certain number of days to the current date in PHP?

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

I already got the current date with:

我已经得到了当前日期:

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

Just need to add x number of days to it

只需要添加 x 天数

回答by

phpsupports c style date functions. You can add or substract date-periods with English-language style phrases via the strtotimefunction. examples...

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'));

or

或者

<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;
}
?>

回答by nickf

a day is 86400 seconds.

一天是 86400 秒。

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

回答by Biswadeep Sarkar

The simplest way to add x no. of days..

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

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

OR from specified date...

或从指定日期...

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

回答by eplawless

The date_add()function should do what you want. In addition, check out the docs (unofficial, but the official ones are a bit sparse) for the DateTimeobject, it's much nicer to work with than the procedural functions in PHP.

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

回答by Xavier John

With php 5.3

使用 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;

will output

会输出

2012-12-24

2012-12-24

2012-12-25

2012-12-25

2012-12-26

2012-12-26

回答by Philipp

If you need this code in several places then I'd suggest that you add a short function to keep your code simpler and easier to test.

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

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;
}

Then you can use it anywhere like this:

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

$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 );

回答by Kaushik shrimali

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

echo $NewDate; //2020-05-21

回声 $NewDate; //2020-05-21

回答by humbads

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

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

From mktime documentation:

mktime 文档

mktime() is useful for doing date arithmetic and validation, as it will automatically calculate the correct value for out-of-range input.

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

The advantage of this method is that you can add or subtract any time interval (hours, minutes, seconds, days, months, or years) in an easy to read line of code.

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

Beware there is a tradeoff in performance, as this code is about 2.5x slower than strtotime("+1 day") due to all the calls to the date() function. Consider re-using those values if you are in a loop.

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

回答by Rayed

Add 15 day to a select element (using "Alive to Die" suggestion)

将 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;
}
?>

回答by Abdul Rafay

<?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>