4

这可能是一个简单的问题。

有什么方法可以在我的项目中设置一个单一的日期格式,并且在任何地方都有这种日期格式。我的意思是查看、编辑、索引操作。我需要的格式是Y-m-d H:i:s,它与我的语言环境日期格式无关。

我尝试在引导文件中使用以下代码,但它不起作用

Type::build('date')->useLocaleParser()->setLocaleFormat('Y-m-d');
Type::build('datetime')->useLocaleParser()->setLocaleFormat('Y-m-d H:i');

在索引中,它一直将日期显示为10/10/15, 8:20 PM.

同样对于编辑日期,我使用文本输入,因此我需要它们到文本框以将日期显示为2015/10/10 20:20.

4

2 回答 2

2

CakePHP 有许多实用程序类和相关帮助程序,它们将为您完成大部分重复或艰巨的工作。

在这种情况下,Time实用程序类可以处理全局格式,如果您使用所需的默认格式设置它。

于 2015-11-14T22:46:44.517 回答
0

我建议您创建一个用于容纳应用程序 CONST 值的文件/类,然后在应用程序引导文件中要求该文件/自动加载该类。

define("MYSQL_DATETIME_FORMAT", "Y-m-d H:i:s");

然后,在您的 ApplicationController 中定义一个属性,例如$mysql_datetime = MYSQL_DATETIME_FORMAT;,并将此值传递给您的视图、视图助手或装饰器类。

您还可以创建一个用户定义或类定义的回调(即帮助程序),它使用此值并为您执行转换(例如function to_mysql_datetime($timeval){...}。然后在您的视图中,您可以调用:

$formatted_datetime = DateFormatHelper::to_mysql_datetime($other_datetime_value);

这是来自关于这个问题的 CakePHP 文档:

如果您有任何额外的配置需求,您应该将它们添加到应用程序的 config/bootstrap.php 文件中。此文件包含在每个请求和 CLI 命令之前。

该文件非常适合许多常见的引导任务:

定义便利功能。声明常量。创建缓存配置。配置拐点。加载配置文件。

当您向引导文件添加内容时,请注意维护 MVC 软件设计模式:将格式化函数放在那里以便在控制器中使用它们可能很诱人。正如您将在控制器和视图部分中看到的,有更好的方法可以将自定义逻辑添加到应用程序中。

来源

于 2015-11-13T14:27:04.443 回答