我怎样才能获得年,月和年与动态数据库分开的一天。(注意,此列有多行。) 数据库数据示例: 2015-08-13, 2016-07-31, 2016年8月2日
public function index()
{
//scholar_birthday - column name
$bday = Scholar::select('scholar_birthday')->get();
dd($bday);
$date = explode("-", $bday);
$d = $date[2];
$m = $date[1];
$y = $date[0];
<!--Static Data-->
//$year = '1991';
//$month = '12';
//$day = '19';
$howOldAmI = Carbon::createFromDate($y,$m,$d)->age;
dd($howOldAmI,$bday);
return view('pages.Index');
}
此代码无效!希望任何人都可以为我修复此逻辑。
更新的代码:错误“未知或错误的时区([{”scholar_birthday“:”1221-02-13 00:00:00“},”
数据库:标题| scholar_birthday |
价值| 2015-08-13 |
我的数据有问题,还是与phpmyadmin或laravel中的时区设置有关?
这是代码:
public function index()
{
$bday = Scholar::select('scholar_birthday')->get();
$format = 'y/m/d';
$year = 'y';
$month = 'm';
$day = 'd';
$data = Carbon::createFromDate($year, $month, $day,$bday);
dd($data);
return view('pages.Index');
}
}
Update.Dob-separate数据库仅用于试验和错误。我的实际工作是来自其他数据库的Scholar模型。这就是我如何从blade.php保存日期输入
注意:我已将日期输入保存到单个列中的数据库。它是正确的还是我需要将y / m / d保存在单独的列中?但这是我的输入“<input type="date" name="date" class="form-control" >"
。所以这将是保存为单列。这样我如何应用您的代码访问数据?
$date = $request->input('date');
$dob = new Dob;
$dateOfBirth = Carbon::createFromFormat('Y-m-d',$date,'UTC')
->tz('UTC')
->toDateString(); // '2014-02-21'
$dob->date_of_birth = $dateOfBirth;
$dob->save();
return view('pages.Ngo.AddDob');
//这是控制器
$bday = Dob::select('date_of_birth')->get();
问题出在这里......
$age = Carbon::createFromDate(,,,$bday)->age;
我想在这里实现的是获得年龄。这里的代码出了什么问题:
$today = Carbon::now()->toDateString();
$bday = Dob::select('date_of_birth')->get();
$age = $bday->diff($today)->age;
错误: 为foreach()提供的参数无效 DD($年龄);
/ database table /
id
2
date_of_birth
2016-12-07
created_at
2016-12-04 12:47:59
updated_at
2016-12-04 12:47:59
答案 0 :(得分:0)
不要通过使用explode()来获取获取特定值的麻烦,而只是将原始日期作为日期对象传递。
在您的模型中(默认情况下,在app / Scholar.php中)添加以下内容:
protected $dates = [
'created_at',
'updated_at',
'deleted_at', // If you are using softDeletes
'scholar_birthday
];
将列添加到日期变更器后,我们将使用Carbon为我们完成所有繁重的工作。确保在使用Carbon外观的任何地方添加适当的使用声明:
use Carbon\Carbon;
然后,在将生日添加到数据库时,将其添加为Carbon对象,如下所示:
Carbon::createFromDate($year, $month, $day, 'UTC');
保存条目后,要从此对象检索特定的日/月/年,请执行以下操作:
$scholar = Scholar::find($idOfScholar);
$bday = $scholar->scholar_birthday
Day: $bday->day
Month: $bday->month
Year: $bday->year
这将得到一个。否则,您需要使用foreach()或其他循环机制从一行迭代到另一行。
如果您有其他问题,请告诉我。