Laravel время получения углерода до истечения срока - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть товар, срок действия которого истекает через определенное количество дней. Я пытаюсь показать пользователю, сколько дней осталось до его истечения. Я не могу заставить его отображать правильное количество оставшихся дней. У меня есть все детали, но вывод неправильный. Я надеюсь, что это не ограничение углеродом, с которым я сталкиваюсь ...

Вот мой полный код:

$order->created_at->addDays($order->service->duration)->subDays($order->created_at->addDays($order->service->duration)->diffInDays(Carbon\Carbon::now()))->diffForHumans()

Сломаться;

Вычисление даты окончания / истечения срока действия -

{{ $order->created_at->addDays($order->service->duration) }}

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

{{ $order->created_at->addDays($order->service->duration)->diffInDays(Carbon\Carbon::now()) }}

Таким образом, это должно быть вычитание даты окончания / истечения срока действия уже использованные дни, например, истекает через 5 дней и прошло 3 дня 5 - 3 = осталось 2 дня (снова полный запрос)

$order->created_at->addDays($order->service->duration)->subDays($order->created_at->addDays($order->service->duration)->diffInDays(Carbon\Carbon::now()))->diffForHumans()

Возвращаемое значение составляет 23 часа, тогда как должно быть 200+ дней

1 Ответ

0 голосов
/ 03 апреля 2020

У меня есть пример кода здесь, в основном, он воспроизводит то, что вы ищете. Карбон работает правильно. Сначала давайте посмотрим

    $orderCreatedAt = new Carbon('first day of January 2020', 'UTC');

    $orderServiceDuration = 200;

    $expireDate = $orderCreatedAt->addDays($orderServiceDuration);

    return  $expireDate->diffForHumans(); // 3 months from now

Итак, ваш код может быть выполнен следующим образом

$order->created_at->addDays($order->service->duration)->diffForHumans();

Кроме того, аргумент для diffForHumans по умолчанию равен now(), если не указан.

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