Получить разницу между 2 датами с Unix - PullRequest
0 голосов
/ 21 сентября 2019

Попытка получить разницу между последней датой и сегодняшней.

В файле json у меня есть дата Unix:

      "lastUpdate": 1568937600,

И я пробовал это, но безуспешно.

<?php
$day = $item['lastUpdate'];;
$datetime1 = date_create('$day');
$datetime2 = date_create('now');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a');
?>

Ответы [ 3 ]

1 голос
/ 21 сентября 2019

Попробуйте:

$datetime1 = new DateTime(date('Y-m-d', $item['lastUpdate'])); //assuming that you have timestamp in the var $item
$datetime2 = new DateTime(date("Y-m-d", strtotime(date("now"))));
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a');

Надеюсь, это поможет.

0 голосов
/ 21 сентября 2019

date_create() получает строку даты / времени с одним из определенных форматов даты и времени .В вашем случае вы пытаетесь преобразовать метку времени Unix в объект DateTime.Вы можете сделать это правильно, заменив следующую строку:

$datetime1 = date_create('$day');

на:

$datetime1 = date_create('@'.$day);
0 голосов
/ 21 сентября 2019

Ваш date_create звонок на $day неправильный.Вам нужно использовать двойные кавычки для рендеринга переменной внутри.Также вам нужен префикс @, чтобы указать, что это временная метка:

<?php
$day = (int) $item['lastUpdate'];
$datetime1 = date_create("@{$day}");
$datetime2 = date_create('now');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a');
?>

Демо: http://sandbox.onlinephpfunctions.com/code/504afecb72bab656bcaf3be8d95bf7f06f5be845

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...