在 laravel 中使用 Jalali 从 Carbon 创建 Julian 日期
Posted
技术标签:
【中文标题】在 laravel 中使用 Jalali 从 Carbon 创建 Julian 日期【英文标题】:Create Julian date from Carbon with Jalali in laravel 【发布时间】: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 的实例,给定字符串
我该如何解决这个问题?
【问题讨论】:
【参考方案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
方法,你应该传递三个参数给它:
-
公历年(例如:2021)
公历月份(例如:8)
公历(例如:24)
【讨论】:
我试了一下,得到了这个错误:Too little arguments Morilog\Jalali\CalendarUtils::to jalali(), 1 pass 我更新了我的答案。请再次检查。以上是关于在 laravel 中使用 Jalali 从 Carbon 创建 Julian 日期的主要内容,如果未能解决你的问题,请参考以下文章
将 gregorian 日期转换为 angular 2 和 Ionic 2 中的波斯(jalali)日期