0

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

代码:

<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"/>

显示不正确的日期,即 01/01/1970

4

3 回答 3

0

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

在格式化之前将 member_birthday 转换为整数。如果strtotime您有权访问安全的破解程序代码,或者您可以使用模板中的 PHP 可执行块来预解析为变量,请使用此选项。但如果你能做到这些,那么你也可以在没有模板的情况下格式化它们!

编辑:http ://expressionengine.com/wiki/Dates_Explained建议:

如果您直接读取或写入数据库时​​间戳,请始终使用本地化函数在 EE 和 Unix 时间戳之间进行转换。

于 2012-10-09T10:20:15.917 回答
0

如果您的member_birthday字段确实是本机 EE 日期自定义字段,那么将存储的日期是 UNIX 时间戳,并且您的代码应该可以工作。

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

查看您的数据库(exp_channel_data表)以了解该字段数据的存储方式。尝试通过控制面板输入日期,看看输入的结果如何。

于 2012-10-09T16:31:20.473 回答
0

似乎日期格式功能在安全破解器标签http://devot-ee.com/add-ons/support/zoo-visitor/viewthread/7449#25153中不起作用,所以我安装了这个插件http://devot- ee.com/add-ons/nice-date并使用此代码

{exp:low_nice_date date="{member_birthday}" format="%d/%m/%Y"}
于 2012-10-10T14:20:12.510 回答