我有2013-01-22
形式的PHP日期,我希望以相同的格式显示明天的日期,例如2013-01-23
。
PHP如何实现这一目标?
答案 0 :(得分:170)
使用DateTime
$datetime = new DateTime('tomorrow');
echo $datetime->format('Y-m-d H:i:s');
或者:
$datetime = new DateTime('2013-01-22');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
或者:
$datetime = new DateTime('2013-01-22');
$datetime->add(new DateInterval("P1D"));
echo $datetime->format('Y-m-d H:i:s');
或者在PHP 5.4 +中:
echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D"))
->format('Y-m-d H:i:s');
答案 1 :(得分:55)
$tomorrow = date("Y-m-d", strtotime('tomorrow'));
或
$tomorrow = date("Y-m-d", strtotime("+1 day"));
帮助链接:STRTOTIME()
答案 2 :(得分:17)
由于您使用strtotime对其进行了标记,因此可以将其与+1 day
修饰符一起使用,如下所示:
$tomorrow_timestamp = strtotime('+1 day', strtotime('2013-01-22'));
那就是说,use DateTime是一个更好的解决方案。
答案 3 :(得分:13)
<? php
//1 Day = 24*60*60 = 86400
echo date("d-m-Y", time()+86400);
?>
答案 4 :(得分:5)
echo date ('Y-m-d',strtotime('+1 day', strtotime($your_date)));
答案 5 :(得分:2)
使用DateTime
:
从明天开始明天:
$d = new DateTime('+1day');
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;
结果:28/06/2017 08.13.20
从明天开始明天:
$d = new DateTime('2017/06/10 08.16.35 +1day')
$tomorrow = $d->format('d/m/Y h.i.s');
echo $tomorrow;
结果:11/06/2017 08.16.35
希望它有所帮助!
答案 6 :(得分:1)
/**
* get tomorrow's date in the format requested, default to Y-m-d for MySQL (e.g. 2013-01-04)
*
* @param string
*
* @return string
*/
public static function getTomorrowsDate($format = 'Y-m-d')
{
$date = new DateTime();
$date->add(DateInterval::createFromDateString('tomorrow'));
return $date->format($format);
}
答案 7 :(得分:1)
奇怪的是它看起来完全正常:date_create( '2016-02-01 + 1 day' );
echo date_create( $your_date . ' + 1 day' )->format( 'Y-m-d' );
应该这样做
答案 8 :(得分:0)
首先,提出正确的抽象始终是关键。可读性,可维护性和可扩展性的关键。
在这里,很明显的候选人是ISO8601DateTime
。至少有两个实现:第一个是从字符串中解析的日期时间,第二个是明日。因此,可以使用两种类别,它们的组合会产生(几乎)所需的结果:
new Tomorrow(new FromISO8601('2013-01-22'));
两个对象 均为ISO8601日期时间,因此它们的文本表示形式并非您所需要的。因此,最后的方法是使它们采用日期格式:
new Date(
new Tomorrow(
new FromISO8601('2013-01-22')
)
);
由于您需要文本表示形式,而不仅是对象,因此您将调用value()
方法。
有关此方法的更多信息,请查看this post。
答案 9 :(得分:-1)
这里的工作职能
function plus_one_day($date){
$date2 = formatDate4db($date);
$date1 = str_replace('-', '/', $date2);
$tomorrow = date('Y-m-d',strtotime($date1 . "+1 days"));
return $tomorrow; }
答案 10 :(得分:-5)
$date = '2013-01-22';
$time = strtotime($date) + 86400;
echo date('Y-m-d', $time);
其中86400是一天中的秒数。