Php 表达式引擎安全破解器格式化日期字段格式=”;%d/%m/%Y”;=01/01/1970

Php 表达式引擎安全破解器格式化日期字段格式=”;%d/%m/%Y”;=01/01/1970,php,codeigniter,expressionengine,safecracker,Php,Codeigniter,Expressionengine,Safecracker,您好,我正在尝试使用format属性格式化我的日期字段,该字段名为{member_birth}。但是,每当我将属性应用于标记时,它都会以正确的格式显示日期,但标记的日期不正确 代码: <input type="text" name="display_birthday" id="display_birthday" value="{member_birthday}" maxlength="23" size="25"/> 显示正确的日期,即1982-11-08 12:00 AM &

您好,我正在尝试使用format属性格式化我的日期字段,该字段名为{member_birth}。但是,每当我将属性应用于标记时,它都会以正确的格式显示日期,但标记的日期不正确

代码:

<input type="text" name="display_birthday" id="display_birthday" value="{member_birthday}" maxlength="23" size="25"/> 

显示正确的日期,即1982-11-08 12:00 AM

<input type="text" name="display_birthday" id="display_birthday" value="{member_birthday format="%d/%m/%Y"}" maxlength="23" size="25"/>


显示错误的日期,即1970年1月1日

它看起来像是一个字符串(或DateTime对象),但要格式化为日期,它必须是一个整数

格式化前将成员“”转换为整数。如果可以访问安全破解程序代码,请使用
strotime
,或者可以使用模板中的PHP可执行块作为变量进行预解析。但是如果你能做到这些,那么你也可以在没有模板的情况下格式化它们

编辑:建议:

始终使用这些函数在EE和Unix之间进行转换 如果您直接读取或写入数据库时间戳,则为时间戳


如果您的
member\u birth
字段确实是一个本地EE日期自定义字段,那么该日期将存储为UNIX时间戳,并且您的代码应该可以工作

因此,我猜测您没有使用本机EE日期字段,或者您确实使用了,但在输入数据时,却以某种方式绕过了正确的验证(从而在数据库中使用ISO样式的日期时间字符串)


查看数据库(
exp\u channel\u data
table),查看字段数据的存储方式。也可以尝试通过控制面板输入日期,看看输入结果如何。

日期格式功能似乎在safecracker标签中不起作用,因此我安装了此插件并使用了此代码

{exp:low_nice_date date="{member_birthday}" format="%d/%m/%Y"}

在SafeClaker中编码会不会迫使所有的日期字段类型变成某种格式?但是你是对的,我可以在模板中打开PHP,并使用PHP日期函数处理它。我只是在学习EE,并且更想寻找一种EE希望您处理这种情况的标准方法。我不知道safe cracker,所以不能评论它如何处理日期-但是如果这是一个“自定义字段”,那么该自定义字段将是一个字符串。它是一个来自频道的日期字段。EE是否仍将其保存为字符串?如果它是一个日期字段,文档说明您所做的是正确的,但这是一个安全的cracker,它是一个用户编写的扩展,并且用户静默扩展的质量通常是有问题的-因此可能有所不同?现在,在模板中执行var_dump以检查您所持有的类型。很抱歉,可能存在一个noob问题,但是您将如何在EE标记上执行var_dump()?在exp\u channel\u字段中,这两个字段都给了我错误,字段类型=日期,在exp\u channel\u数据中,该字段的数据肯定是UNIX时间戳。我在后端的字段中输入了我的生日(1982年11月8日),然后检查了数据库,该数据库已更改为405596816,但仍然显示为1970年1月1日。开始认为这是一个错误,如果您通过频道条目标签而不是在SafeCracker表单中显示相同的字段会怎么样?那么,格式化工作正常吗?对于任何阅读本文的人来说,“EE不允许您访问模板中的日期格式化函数”这句话根本不正确。在通道输入循环中,任何“日期”字段都将接受并解释“格式”参数。如果没有,则是其他错误。实际上,这证实了问题在于日期是以字符串形式发布的,而不是以日期形式发布的。非常简洁的解决方案——如果你手里有一个字符串,而不是一个日期。我的字段在EE中肯定是一个日期字段,但天气与否安全破解程序会将它作为日期传递,我不知道。这是我发现唯一有效的解决方案。关于我的第一次发言,我删除了它。