Я пытаюсь рассчитать разное время между 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
с текущего времени.
Ты можешь использовать
$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 )
Вам нужны базовые знания о том, как проводить сравнения чисел в PHP.
Преобразуйте ваши строки даты в UNIX-метка времени с strtotime
$d = strtotime("19/10/2016 14:48:21");
// 1519646232
Когда даты представлены в формате UNIX-timestamp, их легко сравнить с обычными операторы сравнения как целые числа.
РЕДАКТИРОВАТЬ
Разница в секундах:
$diffBetweenStartAndNow = strtotime( $date_array['weekStart'] ) - time();
$diffBetweenEndAndNow = strtotime( $date_array['weekEnd'] ) - time();