php获取未来的日期时间

时间:2010-04-09 06:21:53

标签: php date time

我不知道如何正确解释这个问题,但只是为你们提供一些样本,这样你才能真正得到我想说的话。

今天是2010年4月9日

从现在开始的7天是2010年4月16日

我正在寻找一个PHP代码,它可以给出确切的日期,给出当前日期之前的天数。

我一直在寻找一个可以解决甚至暗示如何解决这个问题的线程,但我找不到。

6 个答案:

答案 0 :(得分:26)

如果您使用的是PHP> = 5.2,我强烈建议您使用新的DateTime对象,这样可以更轻松地处理日期:

<?php
$date = new DateTime("2006-12-12");
$date->modify("+7 day");
echo $date->format("Y-m-d");
?>

答案 1 :(得分:9)

看看这里 - http://php.net/manual/en/function.strtotime.php

<?php
// This is what you need for future date from now.
echo date('Y-m-d H:i:s', strtotime("+7 day"));

// This is what you need for future date from specific date.
echo date('Y-m-d H:i:s', strtotime('01/01/2010 +7 day'));
?>

答案 2 :(得分:5)

接受的答案没有错,但不是最佳解决方案:

DateTime 类在构造函数中使用可选字符串,该字符串可以定义与 modify 方法相同的逻辑。

<?php
$date = new DateTime("+7 day");

例如:

<?php
namespace DateTimeExample;

$now = new \DateTime("now");
$inOneWeek = new \DateTime("+7 day");

printf("Now it's the %s", $now->format('Y-m-d'));
printf("In one week it's the %s", $inOneWeek->format('Y-m-d'));

有关可用相对格式的列表(对于DateTime构造函数),请查看http://php.net/manual/de/datetime.formats.relative.php

答案 3 :(得分:2)

你必须调查strtotime()。我想你的最终代码看起来像这样:

$future_date = "April 16,2010";
$seconds = strtotime($future_date) - time();
$days = $seconds /(60 * 60* 24);
echo $days; //Returns "6.0212962962963"

答案 4 :(得分:1)

如果你使用PHP&gt; = 5.3,这可能是一个选项。

<?php
$date = new DateTime( "2006-12-12" );
$date->add( new DateInterval( "P7D" ) );
?>

答案 5 :(得分:0)

您可以将mktime与日期结合使用。 (http://php.net/manual/en/function.date.php

日期为您提供当前日期。这比简单地添加/减去时间戳要好,因为它可以考虑夏令时。

<?php
# this gets you 7 days earlier than the current date
$lastWeek = mktime(0, 0, 0, date("m")  , date("d")-7, date("Y"));
# now pretty-print it out (eg, prints April 2, 2010.)
echo date("F j, Y.", $lastWeek), "\n";
?>