如何在PHP中将当前日期添加一定天数?
我已经获得当前日期:
$today = date('y:m:d');
只需要添加x天数
答案 0 :(得分:93)
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;
}
?>
答案 1 :(得分:19)
一天是86400秒。
$tomorrow = date('y:m:d', time() + 86400);
答案 2 :(得分:11)
添加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')));
答案 3 :(得分:7)
date_add()
函数应该做你想要的。另外,查看DateTime
对象的文档(非官方的,但官方的有点稀疏),它比PHP中的过程函数更好用。
答案 4 :(得分:7)
使用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
答案 5 :(得分:2)
如果您需要在多个地方使用此代码,那么我建议您添加一个简短的函数,以使代码更简单,更容易测试。
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 );
答案 6 :(得分:0)
将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;
}
?>
答案 7 :(得分:0)
$NewDate=Date('Y-m-d', strtotime("+365 days"));
回显$ NewDate; // 2020-05-21
答案 8 :(得分:0)
$NewTime = mktime(date('G'), date('i'), date('s'), date('n'), date('j') + $DaysToAdd, date('Y'));
mktime()对于执行日期算术和验证非常有用,因为它将自动为超出范围的输入计算正确的值。
此方法的优点是您可以在易于阅读的代码行中添加或减去任何时间间隔(小时,分钟,秒,天,月或年)。
请注意性能之间的权衡,因为由于对date()函数的所有调用,此代码比strtotime(“ + 1天”)慢约2.5倍。如果您处于循环状态,请考虑重新使用这些值。
答案 9 :(得分:0)
您也可以使用面向对象编程(OOP)代替过程编程:
col3
或者只用一行代码:
$fiveDays = new DateInterval('P5D');
$today = new DateTime();
$fiveDaysAgo = $today->sub(fiveDays); // or ->add(fiveDays); to add 5 days
答案 10 :(得分:-2)
<?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>