function func_diff($d1) {
$of = new DateTime();
$of->setTimestamp($d1);
$to = new DateTime();
//$to->setTimestamp('1475107200'); // 29.09.2016 00:00:00
return $to->diff($of)->format('%r%a');
}
функция должна выводить количество дней между $d1 и unixtimestamp (1475107200)
При этом func_diff('1475193600')
(30.09.2016 00:00:00) выводит 0, а func_diff('1475107200')
(29.09.2016 00:00:00) выводит -0
PHP Version 5.6.24
Вы пытаетесь получить разницу в днях а у дат разница в часах:
function func_diff($d1) {
$to = new DateTime("now");
$to->setTimezone(new DateTimeZone("UTC"));
$of = new DateTime('@'.$d1);
var_dump($to->format('c'), $of->format('c'));
var_dump($to->diff($of)->format('%R%h часов'));
}
func_diff('1475193600'); //30.09.2016 00:00:00
func_diff('1475107200'); //29.09.2016 00:00:00
func_diff('1475020800'); //28.09.2016 00:00:00
Пример
В вашем примере вы получаете "-" или пусто с помощью флага %r
(указывает какая разница, положительная или отрицательная). Затем кол-во дней флагом %a
, а их 0. В итоге, вы получаете или 0 или -0.
Может кому пригодится, не идеально, но работает:
function kupoig_diff($d1) {
$of = new DateTime();
$of->setTimestamp(strtotime(date('d-m-Y', $d1)));
$to = new DateTime();
$to->setTimestamp(strtotime(date('d-m-Y')));
return $to->diff($of)->format('%r%a');
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Бьюсь второй день над следующей задачей: есть база данных адресов типа "область", "город", "улица", "дом" и тд
Мне нужно в логах красиво, С ОТСТУПАМИ выводить многомерные массивыПока у меня есть функция для вывода без отступов:
Есть ajax форма на которую переходят по ссылке с видео (жалоба), ссылка вида: http://sitecom/abuse/index