【问题标题】:Joomla 3.4.5 Form Field Calendar shows 1970-01-01 instead of emptyJoomla 3.4.5 表单字段日历显示 1970-01-01 而不是空的
【发布时间】:2015-11-20 10:42:19
【问题描述】:

我一直在纠结这个问题: 我在表单中使用日历表单字段,MySQL 数据库字段设置为 DATE 并默认为 0000-00-00 xml中的表单字段定义使用

format="%Y-%m-%d"
default="0000-00-00"

在前端始终显示 1970-01-01 而不是空字段。 我在网上搜索但找不到解决方案,如果数据库中有零,如何获取空字段。有人可以帮帮我吗?

【问题讨论】:

    标签: forms joomla datepicker calendar


    【解决方案1】:

    用于存储该日期的字段不允许 NULL 值,因此使用 0000-00-00 作为默认值(它是一个日期字段)。因此,我决定看看当我更改数据库中的字段以允许 NULL 值并将特定记录的值设置为 NULL 时发生了什么。等等……问题解决了。不再显示“奇怪的日期”。

    但是...在保存日期字段时,Joomla 决定将其存储为 0000-00-00,从而使显示再次伪造。因此,我查看了模型并添加了以下行:

    if ($data->birth_date == '0000-00-00') { $data->birth_date = ''; }
    

    在受保护函数 loadFormData() 中返回 $data 之前。

    现在要完成它,因为列表仍然显示“0000-00-00”,我查看了列表的模型并添加了

    $oneItem->birth_date = ($oneItem->birth_date == '0000-00-00') ? "" : $oneItem->birth_date;
    

    在它返回公共函数 getItems() 中的 $items 之前。

    【讨论】:

    • 这不是一个答案.. 这是一个“我去年夏天做了什么”的独白,几乎不可能涉足。
    【解决方案2】:

    您已将默认值设置为:0000-00-00。

    这是计算机发明之前的时间方式,如果日期无效或无效,php默认回到下面

    1970-01-01

    因此,它将默认为尽可能远。

    设置一个实际的默认日期或设置为 NOW 以加载当前日期。

    【讨论】:

    • 不要以为你明白了。如果数据库中没有日期(空日期),我希望 j3 日历字段显示一个空输入。但我找到了解决方案:将数据库列从 DATE 设置为 DATETIME 并将默认值设置为 0000-00-00 00:00:00 解决了这个问题:如果 DB 中有默认值,jommla 不会显示空输入。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多