在 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 日期的主要内容,如果未能解决你的问题,请参考以下文章

分析此日期时间结果并在laravel中导出公正日期

Jalali 日历的任何 Java 日期选择器?

将 gregorian 日期转换为 angular 2 和 Ionic 2 中的波斯(jalali)日期

如何在纯PHP项目中使用下载的库和composer?

Bootstrap 日期选择器和 moment.js jalali 日历

Android中是不是有波斯(Shamsi或Jalali)日历的库或算法? [关闭]