此应用程序是在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
有人知道此冲突错误的原因是什么?试图搜索相同的问题,但仍然没有解决方案。谢谢
答案 0 :(得分:0)
通过将代码更改为以下错误已消除错误:
$tarikh->map(function ($detail) {
$detail->Umur = \Carbon\Carbon::createFromFormat('Y',$detail->lahir_yy)->diffInYears();
return $detail;
});