我完全陷入困境,试图用角度前端制作php api交换日期.
从PHP到JS我似乎已经排序了.由于Laravel通过Carbon处理日期,我刚刚添加\Carbon\Carbon::setToStringFormat('c');到app.php,这使得日期在ISO 8601中出现.
PHP示例:
2015-02-04T00:53:51 + 02:00
AngularJS日期过滤器似乎也很好地理解了这种格式,甚至可以正确读取时区.
我尚未开始工作的是将JS日期对象发布回PHP api.
JS例子:
2015-02-05T13:00:00.000Z
Javascript日期格式以字符串中的毫秒数结束,默认配置中Carbon抱怨尾随数据.
浏览器似乎也会自动将我的日期转换为UTC时间.
手动使用new Carbon('jsDateString')似乎最初工作,但仔细检查时区数据不予考虑.
所以我的问题是从AngularJS前端发送日期回到Laravel php api的最佳和最自动的解决方案是什么?
我想将此工作查询格式化为预准备语句:
Route::get('procedure/{adr}/{part}/{batch?}', function($adr, $part, $batch= '') {
return DB::connection('sqlconnection')->select("Procedure_Name '$adr', '$part', '$batch'");
});`
Run Code Online (Sandbox Code Playgroud)
尝试了我能想到的一切,我得到的最接近的就是这个.
DB::connection('sqlconnection')->select('Procedure_Name ?, ?, ?', array("'$adr'", "'$part'", "'$batch'"));
Run Code Online (Sandbox Code Playgroud)
这会导致和sql命令一起出错,直接在db上使用就可以了.
Illuminate\Database\QueryException SQLSTATE [42000]:[Microsoft] [SQL Server Native Client 11.0] [SQL Server]'Procedure_Name'附近的语法不正确.(SQL:Procedure_Name'VLM','7999800','P20131018-29')
我究竟做错了什么?