如果我已经知道这个日期的日期,如何找出下一个日期?

时间:2016-05-26 09:00:34

标签: php date datetime datepicker mktime

假设我有三个变量。

$curr_day = "monday";
$curr_date = "12/12/2222";//('d/m/y')
$next_day = "friday";

$next_date = ??;

下一个约会是什么时候? 是否有任何" php功能" 可以帮助我查找$ next_date?

先谢谢。

5 个答案:

答案 0 :(得分:1)

你试过了吗?

var_dump(new DateTime('next friday'));

答案 1 :(得分:1)

你只需要:

var_dump(new DateTime('2016-05-29 next friday'));

将在下一个星期五给你" 2016-05-29"。

object(DateTime)[2]
  public 'date' => string '2016-06-03 00:00:00.000000' (length=26)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Berlin' (length=13)

使用您需要的功能完成示例:

$curr_day = "monday";
$curr_date = "26/05/2016";
$date = DateTime::createFromFormat('d/m/Y', $curr_date);
$nextDate = new DateTime($date->format('Y-m-d').' next friday');
var_dump($nextDate->format("d/m/Y"));

string '27/05/2016' (length=10)

答案 2 :(得分:0)

我通常使用DateTime来解决与日期相关的问题。看一下下面的例子:

// Make a new DateTime object using your date
$date = DateTime::createFromFormat('Y-m-d', '2016-05-25');

// Modify the object to get the next date
$date->modify('next friday');

// Output the date
echo $date->format('Y-m-d');

答案 3 :(得分:0)

我假设您的$curr_date采用m/d/Y格式(如果不是,请澄清您的问题,因为12/12令人困惑)

您可以使用strtotime作为计算相对日期的简便方法。请参阅Example #1

$curr_day = "Monday";
$curr_date = "12/12/2222";
$next_day = "Friday";

// Convert your string $curr_date to timestamp
$curr_date = strtotime( $curr_date );

// Then use again strtotime to calculate the relative date.
echo date('m-d-Y', strtotime( "next " . $next_day, strtotime( $curr_date ) ) );

希望这有帮助!

PS:顺便说一句,12/12/2222不是星期一,而是Thursday

答案 4 :(得分:0)

TRY!此...

// get next date
$d = new DateTime($curr_date);
$next_date = new DateTime($d->format('d/m/y'));
echo $next_date->modify('+1 day'); //13/12/2222