Laravel 使用特殊的日期格式

Laravel use special date format

现在我使用 strtotime 函数将德国日期格式 (01.01.2017) 转换为股票 (2017-01-01)。例如我使用 date('Y-m-d', strtotime($birthday))。现在我想使用简短的德语日期格式并将其转换为股票。例如。 1.1.17 应转换为 2017-01-01。我怎样才能做到这一点?使用 strtotime 功能不起作用(或者我很傻才正确使用它)

另一个问题:如果有人输入 2017 年 1 月 32 日,我如何捕获错误?我只收到调试通知,或者在生产时收到 "Whoops, ..." "error" 消息。相反,制作一些甜蜜的警报消息会很棒。我收到以下错误消息:

DateTime::__construct(): Failed to parse time string (32.10.2016) at position 0 (3): Unexpected character

对于管理 Laravel 日期,您可以使用名为 Carbon 的精美软件包来解决 Carbon::parse("data");

的问题

在这里你可以找到很好的文档。

http://carbon.nesbot.com/docs/ 这里是 api 文档 Laravel:

https://laravel.com/api/5.5/Illuminate/Support/Carbon.html

正如 LorenzoBerti 提到的,您可以使用 carbon 来解析您的日期:

$birthday = Carbon::parse($birthday)->format('d.m.y');

注意 format() 方法,这应该会为您提供所需的格式。

你可以用这个。

$date = '1.1.17';
$year = substr($date, -2);
$finalDate= substr($date, 0, -2)."20".$year;
Carbon::createFromFormat('m.d.Y',$finalDate)->format('Y-m-d');

(已更新)。