#php #wordpress #date #datediff #date-difference
#php #wordpress #Дата #datediff #разница в дате
Вопрос:
Я пробовал оба этих метода, но когда я использую функцию date_diff(), она также скрывает и другие выходные данные.
<?php $dateto=$values['date-to'];
$datefrom=$values['date-from'];
//Method 1
$days=date_diff($dateto,$datefrom);
$days->format("%R%a days");'
echo $days;'
//Method 2
$interval = $datefrom->diff($dateto);
$days = $interval->d; ?>
Комментарии:
1. Похоже, в вашем коде есть проблема: не
$days->format("%R%a days");' echo $days;'
должно быть так вместо этого?:$days->format("%R%a days"); echo $days;
2. Кроме того,
$days
здесь есть объект, поэтому вы не можете просто повторить его. Это не строка. Вы можете просто сделать:echo $days->format("%R%a days");
Ответ №1:
Вашу функцию необходимо немного изменить следующим образом..
$dateto = new DateTime( $values['date-to'] );
$datefrom = new DateTime( $values['date-from'] );
//will give you days
$datefrom->diff( $dateto )->days;
$datefrom->diff( $dateto)->minutes;
также в WordPress есть еще одна функция для увеличения разницы во времени
$from= strtotime( $dateform );
$to = strtotime( $dateto );
human_time_diff( $from, $to );
это автоматически даст вам часы, минуты и секунды
Ответ №2:
Попробуйте это: это даст вам разницу в 2 даты в виде дней
$datef = strtotime($datefrom);
$datet = strtotime($dateto);
$diff = $datet - $datef;
$days =round($diff / 86400);