在cakephp 3.x的整个项目中使用一种日期格式

时间:2015-11-09 20:34:04

标签: php datetime cakephp cakephp-3.1 cakephp-3.x

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

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

我尝试在bootstrap文件中使用以下代码,但它没有工作

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

2 个答案:

答案 0 :(得分:2)

CakePHP有许多实用程序类和关联helpers,它们可以为您完成大部分重复或艰苦的工作。

在这种情况下,Time实用程序类可以使用您需要的默认格式set it up全局处理格式化。

答案 1 :(得分: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软件设计模式   引导程序文件的内容:放置格式可能很诱人   在那里运行,以便在您的控制器中使用它们。就像你一样   在控制器和视图部分中看到有更好的方法   将自定义逻辑添加到您的应用程序中。

Source