gpt4 book ai didi

forms - 如何在 Laravel 中处理日期输入

转载 作者:bug小助手 更新时间:2023-10-28 10:50:46 25 4
gpt4 key购买 nike

我正在开发一个允许用户在表单中编辑多个日期的应用程序。日期以欧洲格式 (DD-MM-YYYY) 呈现,而数据库使用默认的 YYYY-MM-DD 格式。

有几种方法可以在数据库和用户之间来回编码/解码这些数据,但它们都需要大量代码:

  • 使用辅助函数在保存前和检索后转换日期(非常繁琐,需要很多代码)
  • 为每个日期属性创建一个单独的属性,并使用 setNameAttributegetNameAttribute 方法来解码/编码(也很麻烦和丑陋,每个都需要额外的翻译/规则属性)
  • 在加载和提交表单时使用 JavaScript 转换日期(不是很可靠)

那么从用户那里存储、检索和验证日期和时间的最有效方法是什么?

最佳答案

在某些时候,您必须将日期从 View 格式转换为数据库格式。正如您所提到的,有很多地方可以做到这一点,基本上是在后端或前端之间进行选择。

我使用 javascript 在客户端(前端)进行转换(您可以使用 http://momentjs.com 来帮助解决此问题)。原因是您可能需要不同的格式,具体取决于客户端使用的区域设置(例如在浏览器或他的配置文件首选项中设置)。在前端进行格式转换可以让您轻松转换为这些不同的日期格式。

另一个好处是你可以在你的模型中使用 protected $dates 属性让 Laravel 自动处理(获取和设置)这些日期作为 Carbon 对象,而不需要你做这个(见 https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Model.php#L126)。

至于验证,你需要然后可以使用 Laravel 的内置日期验证规则,如下所示:

'date' => 'required|date|date_format:Y-n-j'

关于forms - 如何在 Laravel 中处理日期输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24965799/

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