date — Рассчитать разницу во времени в переполнении стека

Я пытаюсь рассчитать разное время между 3 разными датами

1. Start date
2. End date
3 current date

Я изучал способ расчета, но не смог найти точного примера.

Любая помощь в решении этого будет принята с благодарностью.

function getweekSartEndDate($date){
$cur_date = strtotime($date); // Change to whatever date you need
// Get the day of the week: Sunday = 0 to Saturday = 6
$dotw = date('w', $cur_date);
if($dotw>1){
$pre_monday  =  $cur_date-(($dotw-1)*24*60*60);
$next_sunday = $cur_date+((7-$dotw)*24*60*60);
}
else if($dotw==1){
$pre_monday  = $cur_date;
$next_sunday =  $cur_date+((7-$dotw)*24*60*60);
}
else if($dotw==0){
$pre_monday  =$cur_date - (6*24*60*60);;
$next_sunday = $cur_date;
}

$date_array =   array();
$date_array['weekStart'] = $pre_monday;
$date_array['weekEnd'] = $next_sunday;

return $date_array;

}

Выше приведен пример кода, который я получил до сих пор, и я смог получить даты начала и окончания недели, как показано ниже:

$weekStart = date('Y-m-d H:i:s', $weekInfo['weekStart']);
$weekEnd = date('Y-m-d H:i:s', $weekInfo['weekEnd']);

Мои проблемы, как получить разницу во времени 'Y-m-d H:i:s' date format с текущего времени.

0

Решение

Ты можешь использовать

$currentDate = date('Y-m-d H:i:s');
$currentDate = new DateTime($currentDate);
$leaveDate = new DateTime($leaveFrom);
$difference = $currentDate->diff($leaveDate);

Вы получите результат следующим образом

DateInterval Object ( [y] => 0 [m] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => 0 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 )
0

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

  1. Вам нужны базовые знания о том, как проводить сравнения чисел в PHP.

  2. Преобразуйте ваши строки даты в UNIX-метка времени с strtotime

    $d = strtotime("19/10/2016 14:48:21");

    // 1519646232

  3. Когда даты представлены в формате UNIX-timestamp, их легко сравнить с обычными операторы сравнения как целые числа.

РЕДАКТИРОВАТЬ

Разница в секундах:

$diffBetweenStartAndNow = strtotime( $date_array['weekStart'] ) - time();
$diffBetweenEndAndNow = strtotime( $date_array['weekEnd'] ) - time();
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector