以人类可读格式排列的日期

Dates on array in human readable format

我的数据库中有一个 productsPpurchases(库存详细信息)两个不同的表,并使用以下控制器获取库存列表。

public function stockapi($id)
    {
        $data = Ppurchase::where('product_id',$id)->get();

        $json_data = json_encode($data);
        $data = view('inventory::api.productapi', compact('json_data'));

        return response($data)->header("Content-Type","application/json; charset=utf-8");
    }

我正在关注 JSON:

[
    {
        "id": 54,
        "product_id": 1,
        "purchase_id": 45,
        "batch": "32",
        "manufacture_date": "2017-10-16",
        "expiry_date": "2017-10-16",
        "quantity": 32,
        "invoice_price": 32,
        "selling_price": 3,
        "product_discount": 32,
        "created_at": "2017-10-24 05:31:48",
        "updated_at": "2017-10-24 05:31:48"
    },
    {
        "id": 56,
        "product_id": 1,
        "purchase_id": 46,
        "batch": "33",
        "manufacture_date": "2017-10-23",
        "expiry_date": "2017-10-25",
        "quantity": 32,
        "invoice_price": 23,
        "selling_price": 23,
        "product_discount": 23,
        "created_at": "2017-10-24 07:46:55",
        "updated_at": "2017-10-24 07:46:55"
    },
    {
        "id": 57,
        "product_id": 1,
        "purchase_id": 47,
        "batch": "df",
        "manufacture_date": "2017-10-10",
        "expiry_date": "2017-10-03",
        "quantity": 100,
        "invoice_price": 100,
        "selling_price": 100,
        "product_discount": 100,
        "created_at": "2017-10-24 11:58:27",
        "updated_at": "2017-10-24 11:58:27"
    }
]

现在我的问题从这里开始,
1) 如何以人类可读的格式显示这些 expiry_datemanufacture_date
2) 如何获取产品的 batch 剩余到期天数最少? (另外)

expiry_datemanufacture_date 显示为人类可读格式,您可以编写 Accessor。 您还可以使用访问器引入新属性来查找最少剩余到期日 我想你有这样的模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;

class Ppurchase extends Model
{

    public function getExpiryDateAttribute($value)
    {
        return Carbon::parse($value)->diffForHumans();
    }


    public function getManufactureDateAttribute($value)
    {
        return Carbon::parse($value)->diffForHumans();
    }

    public function getRemainingDaysAttribute()
    {
        return Carbon::parse($this->expiry_date)->diffForHumans(Carbon::parse($this->manufacture_date));
    }

}

使用它,您将获得人类可读格式的日期,并且您将获得一个新属性 remaining_days,您可以根据需要利用它来过滤集合

For more info I recommand you to read this. https://laravel.com/docs/5.5/eloquent-mutators#defining-an-accessor