Как узнать следующую дату, если я уже знаю день этой даты?

Предположим, у меня есть три переменные.

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

$next_date = ??;

какое будет следующее свидание?
Есть ли «php functions» это помогает мне узнать $ next_date?

Заранее спасибо .

0

Решение

Вам нужно только:

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)
1

Другие решения

ты пробовал :

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

Я обычно использую 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');
0

Я предполагаю, что ваш $curr_date в m/d/Y формат (если это не так, пожалуйста, уточните свой вопрос, потому что 12/12 это сбивает с толку).

Вы могли бы использовать strtotime как простой способ рассчитать относительные даты. Увидеть Пример № 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 не понедельник, но Четверг.

0

ПЫТАТЬСЯ! этот…

// 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
0
По вопросам рекламы [email protected]