为什么碳助手不工作并给出日期时间错误?

时间:2018-12-21 06:08:19

标签: datetime laravel-5 php-carbon array-map

此应用程序是在Lavavel 5中构建的。我有一个表,其中包含出生日期,月份和年份。我使用以下查询查询表:

  $tarikh = DB::table('itemregistrations')
            ->select('itemregistrations.lahir_dd', 'itemregistrations.lahir_mm', 'itemregistrations.lahir_yy')
            ->get();

dd($ tarikh);产生以下输出:

Collection {#709 ▼
#items: array:1123 [▼
0 => {#681 ▼
  +"lahir_dd": 9
  +"lahir_mm": "June"
  +"lahir_yy": 1979
}
1 => {#670 ▶}
2 => {#680 ▶}
3 => {#713 ▶}

我想使用碳来计算年龄,并使用数组映射作为年龄插入集合中:

 $tarikh->map(function ($detail) {
        $detail->age = \Carbon\Carbon::parse($detail->lahir_yy)->diffInYears();
        return $detail;
    }); 

但是出现此错误:

 DateTime::__construct(): Failed to parse time string (0) at position 0 (0): Unexpected character

它突出显示了这段代码:

  parent::__construct($time, $timezone);
    if (isset($locale)) {
        setlocale(LC_NUMERIC, $locale);
    }

一个朋友帮助我使用了这种小提琴,并且效果很好。.但是在应用程序中,出现了错误。

 https://implode.io/i1GanD

有人知道此冲突错误的原因是什么?试图搜索相同的问题,但仍然没有解决方案。谢谢

1 个答案:

答案 0 :(得分:0)

通过将代码更改为以下错误已消除错误:

 $tarikh->map(function ($detail) {

        $detail->Umur = \Carbon\Carbon::createFromFormat('Y',$detail->lahir_yy)->diffInYears(); 
        return $detail;
    });