在特定日期添加天数

jsk*_*jsk 14 php strtotime

许多例子都是关于今天增加的日子.但如果我有不同的明星日,该怎么做呢?

例如(不起作用):

$day='2010-01-23';

// add 7 days to the date above
$NewDate= Date('$day', strtotime("+7 days"));
echo $NewDate;
Run Code Online (Sandbox Code Playgroud)

上面的例子不起作用.我应该如何通过在Date的位置添加其他东西来改变明星日?

Cor*_*lou 39

根据您的代码进行非常基本的修复:

$day='2010-01-23';

// add 7 days to the date above
$NewDate = date('Y-m-d', strtotime($day . " +7 days"));
echo $NewDate;
Run Code Online (Sandbox Code Playgroud)

如果您使用的是PHP 5.3+,则可以使用非常方便的新DateTime库:

$day = '2010-01-23';

// add 7 days to the date above
$NewDate = new DateTime($day);
$NewDate->add(new DateInterval('P7D');
echo $NewDate->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

DateTime现在完全转向使用自己,因为它非常强大.您还可以在实例化时轻松指定时区,即new DateTime($time, new DateTimeZone('UTC')).您可以使用这些方法add()sub()使用DateInterval对象更改日期.这是文档:

  • $NewDate->add(new DateInterval('P7D'); - 你需要在最后添加一个额外的 ')' :) (3认同)

ant*_*paw 10

$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day)));
Run Code Online (Sandbox Code Playgroud)

  • 这将只输出自unix时代以来的秒数. (3认同)