【问题标题】:Create Julian date from Carbon with Jalali in laravel在 laravel 中使用 Jalali 从 Carbon 创建 Julian 日期
【发布时间】:2021-10-24 13:05:09
【问题描述】:

我在数据库中的文件有一个到期日期。

我想将其转换为朱利安波斯日期并将其压缩到编辑页面。

这是我的控制器:

Public function edit(Panelfile $panelfile)
{

$expiration = Jalalian::fromCarbon($panelfile->expiration)->format('Y-m-d');

$date = CalendarUtils::toJalali($expiration);

return view('file.edit',compact('panelfile','date'));
}

这是我的日期选择器输入:

<div class="form-group">
<input type="text" name"expiration" value="{{$date}}" data-jdp>
</div>

当我进入编辑页面时出现此错误:

传递给 Morilog\Jalali\Jalalian::fromCarbon() 的参数 1 必须是 Carbon\Carbon 的实例,给定字符串

我该如何解决这个问题?

【问题讨论】:

    标签: laravel eloquent laravel-8 laravel-6 jalali-calendar


    【解决方案1】:

    改变这一行:

    $expiration = Jalalian::fromCarbon($panelfile->expiration)->format('Y-m-d');
    

    到这里:

    $expiration = Jalalian::fromCarbon(Carbon::parse($panelfile->expiration))->format('Y-m-d');
    

    现在您在$expiration 中有类似1400-06-02 的内容(这是Jalali 日期)。

    如果你看一下 toJalali 方法,它需要 3 个参数:

    /**
     * Converts a Gregorian date to Jalali.
     *
     * @param $gy
     * @param $gm
     * @param $gd
     * @return array
     * 0: Year
     * 1: Month
     * 2: Day
     */
    public static function toJalali($gy, $gm, $gd)
    {
        return self::d2j(self::g2d($gy, $gm, $gd));
    }
    

    您已经有了 Jalali 日期,并且(我认为)您不需要在那之后使用该行。 但是如果你想使用toJalali 方法,你应该传递三个参数给它:

    1. 公历年(例如:2021)
    2. 公历月份(例如:8)
    3. 公历(例如:24)

    【讨论】:

    • 我试了一下,得到了这个错误:Too little arguments Morilog\Jalali\CalendarUtils::to jalali(), 1 pass
    • 我更新了我的答案。请再次检查。
    猜你喜欢
    • 2016-04-30
    • 2018-07-04
    • 1970-01-01
    • 2019-11-06
    • 2016-02-28
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    相关资源
    最近更新 更多