php get future date time

混江龙づ霸主 提交于 2021-02-06 10:07:00

问题


I don't know how to explain this correctly but just some sample for you guys so that you can really get what Im trying to say.

Today is April 09, 2010

7 days from now is April 16,2010

Im looking for a php code, which can give me the exact date giving the number of days interval prior to the current date.

I've been looking for a thread which can solve or even give a hint on how to solve this one but I found none.


回答1:


If you are using PHP >= 5.2, I strongly suggest you use the new DateTime object, which makes working with dates a lot easier:

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



回答2:


Take a look here - 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'));
?>



回答3:


The accepted answer is not wrong but not the best solution:

The DateTime class takes an optional string in the constructor, which can define the same logic as the modify method.

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

For example:

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

For a list of available relative formats (for the DateTime constructor) take a look at http://php.net/manual/de/datetime.formats.relative.php




回答4:


You will have to look into strtotime(). I'd imagine your final code would look something like this:

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



回答5:


If you are using PHP >= 5.3, this could be an option.

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



回答6:


You can use mktime with date. (http://php.net/manual/en/function.date.php)

Date gives you the current date. This is better than simply adding/subtracting to a timestamp since it can take into account daylight savings time.

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


来源:https://stackoverflow.com/questions/2605446/php-get-future-date-time

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!