gpt4 book ai didi

laravel - 处理 php (Laravel API) 和 javascript (AngularJS) 之间的日期时间

转载 作者:行者123 更新时间:2023-12-04 08:55:05 25 4
gpt4 key购买 nike

我试图让我的 Laravel API 与我的 Angularjs 前端交换日期。

它首先转换我的 mysql 日期时间初始值,从 Laravel 到 JS:

2015-08-19 10:00:00

使用 $newdate = Carbon::parse($event['date'])->toATOMString();输出:
2015-08-19T10:00:00+00:00

,然后稍后使用 event.date = new Date(event.date); 将其转换为 javascript 日期对象(Angularjs)输出:
Date 2015-08-19T10:00:00.000Z

问题 : 将我更新的 Javascript 日期对象发布回我的 PHP API 更新 mysql db (datetime) 中的值。 Carbon 不喜欢他返回的日期格式:
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));
}

最佳答案

最初由问卷调查自己发布,但他将答案发布到问题本身中,所以在这里我正在编辑问题以使其更有意义他写道:

我终于去了。

在我的 AngularJS 前端更新我的日期时间并将我的 JS 日期对象发布回我的 PHP API 后,我无法弄清楚如何使用以下日期格式:

2015-08-19T11:00:00.000Z

我不断收到异常

'InvalidArgumentException' with message 'Trailing data' … Carbon/Carbon.php:392 error.



我试过
$date = Carbon::createFromFormat('Y-m-d\TH:i:s.uO', $date);

但这没有用。在意识到我的 Laravel 模型期待以下日期时间格式后 Y-m-d H:i ,我不得不对从 JS 收到的日期时间进行双重格式化。
$date = Carbon::createFromFormat('Y-m-d\TH:i:s.uO', $date);->format('Y-m-d H:i');

不确定这是最好的方法,但它现在有效。

关于laravel - 处理 php (Laravel API) 和 javascript (AngularJS) 之间的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com