标签:laravel laravel-5 php-carbon mysql php
我正在为学校应用程序开发后端,但在将诸如“ Thu Apr 11 2019 00:00:00 GMT 0200”之类的请求中得到的日期转换为MySQL格式(时间戳)时遇到问题.
public function getAll(Request $request){
$start = $request->input('start');
$end = $request->input('end');
// we receive some thing like:
// Thu Apr 11 2019 00:00:00 GMT+0200 (Central European Summer Time)
$sales = Sale::with('SaleLine.lens','SaleLine.cadre','cli_sale')
->whereBetween('created_a', [$start, $end])
->orderBy('id', 'desc')->get();
for ($i=0; $i < count($sales); $i++) {
$sales[$i]['client_name'] = $sales[$i]['cli_sale']['first_name'] . " " . $sales[$i]['cli_sale']['last_name'];
}
return response()->success(['sales'=>$sales]);
}
解决方法:
您可以使用Carbon :: parse()像这样
>>> Carbon\Carbon::parse('Thu Apr 11 2019 00:00:00 GMT+0200')
=> Carbon\Carbon @1554933600 {#3119
date: 2019-04-11 00:00:00.0 +02:00,
}
>>> Carbon\Carbon::parse('Thu Apr 11 2019 00:00:00 GMT+0200')->toDateTimeString(
);
=> "2019-04-11 00:00:00"
重写代码将是
public function getAll(Request $request){
$start = $request->input('start');
$end = $request->input('end');
$start = Carbon\Carbon::parse($start)->toDateTimeString();
$end = Carbon\Carbon::parse($end)->toDateTimeString();
// we receive some thing like:
// Thu Apr 11 2019 00:00:00 GMT+0200 (Central European Summer Time)
$sales = Sale::with('SaleLine.lens','SaleLine.cadre','cli_sale')
->whereBetween('created_at', [$start, $end])
->orderBy('id', 'desc')->get();
for ($i=0; $i < count($sales); $i++) {
$sales[$i]['client_name'] = $sales[$i]['cli_sale']['first_name'] . " " . $sales[$i]['cli_sale']['last_name'];
}
return response()->success(['sales'=>$sales]);
}
标签:laravel,laravel-5,php-carbon,mysql,php 来源: https://codeday.me/bug/20191108/2005553.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。