我正在嘗試使用我的Angularjs前端來製作Laravel API交換日期。處理PHP(Laravel API)和javascript(AngularJS)之間的日期時間
它從Laravel工作以JS通過第一轉換我的MySQL日期時間初始值:使用
2015-08-19 10:00:00
$newdate = Carbon::parse($event['date'])->toATOMString();
其輸出:
2015-08-19T10:00:00+00:00
,後來將其轉換成一個JavaScript日期對象(Angularjs )使用event.date = new Date(event.date);
其中輸出:
Date 2015-08-19T10:00:00.000Z
問題:將更新後的Javascript日期對象發回我的PHP API以更新mysql db(datetime)中的值。碳不喜歡他回來的日期格式:
2015-08-19T11:00:00.000Z
而且我不知道如何處理這個。我從我的Laravel日誌中得到以下錯誤:exception 'InvalidArgumentException' with message 'Trailing data' … Carbon/Carbon.php:392
問題:我應該如何在php中將上述格式化日期進行轉換,以便Carbon接受它?
我並不需要記錄秒,所以我Laravel模型處理日期,像這樣:
$this->attributes['date'] = Carbon::createFromFormat('Y-m-d H:i', $date);
這裏是我的嘗試(沒有成功),直至現在。我明顯錯過了一些東西,不確定我在做什麼。
/**
* Store updates to event.
*
* @return Response
*/
public function update($id)
{
$event = Event::findOrFail($id);
$date = Request::get('jsdateobject');
// ------------------------------------------------------------
// trying to handle following format: 2015-08-19T11:00:00.000Z
// ------------------------------------------------------------
// $date = Carbon::parse($date)->toATOMString(); // didn't work - outputs: 2015-08-19T11:00:00+00:00
// $date = Carbon::parse($date)->toDateTimeString(); // didn't work - outputs: 2015-08-19 11:00:00
// $date = Carbon::parse($date)->toW3cString(); // didn't work - outputs: 2015-08-19T11:00:00+00:00
// $date = new Carbon($date); // didn't work - outputs: 2015-08-19 11:00:00
$date = Carbon::createFromFormat('Y-m-d\TH:i:s.uO', $date); // didn't work - outputs: 2015-08-19 11:00:00
$event->date = $date;
$event->update();
return Response::json(array('success'=>true));
}
可以將它轉換爲JS'Date()'的unix時間戳,然後使用'Carbon :: createFromTimestamp()'? – benJ
我不想在JS中玩日期格式(除了只更新它),所以我試圖在我的Laravel控制器中操作日期。我用Carbon :: createFromFormat玩沒有運氣(我已經更新了上面的代碼)。 – user3489502
我想我現在明白了。問題更新解決方案 – user3489502