Php Joomla,JForm:Date和time是';他没有得救

Php Joomla,JForm:Date和time是';他没有得救,php,joomla,joomla2.5,joomla1.7,joomla1.6,Php,Joomla,Joomla2.5,Joomla1.7,Joomla1.6,Joomla dev的新功能,编写了一个简单的后端组件,其中有两个日期字段。一个是用户可以从日历弹出窗口中选择的日期(下面的第一个),第二个是用户不能更改的日期/时间戳,但需要查看最后一个时间戳是什么。在编辑表单中,第一个(datepassed)正在工作并获取今天的日期。第二个(时间戳)仅在创建记录且根本不保存时间时有效。我需要它总是抓住现在的时间和日期 从XML文件: <field name="datepassed" type="calendar" label="Da

Joomla dev的新功能,编写了一个简单的后端组件,其中有两个日期字段。一个是用户可以从日历弹出窗口中选择的日期(下面的第一个),第二个是用户不能更改的日期/时间戳,但需要查看最后一个时间戳是什么。在编辑表单中,第一个(datepassed)正在工作并获取今天的日期。第二个(时间戳)仅在创建记录且根本不保存时间时有效。我需要它总是抓住现在的时间和日期

从XML文件:

  <field name="datepassed"
    type="calendar"
    label="Date Completed"
    default="NOW"           
  /> 

  <field name="timestamp"
    type="calendar"
    label="Last Modified"
    default="NOW"
    readonly="true" 
    class="readonly"
  />

在edit.php视图中:

  foreach ($this->form->getFieldset('fields_logged') as $field): 
    echo '<li>';
        echo $field->label;
        echo $field->input; 
     echo '</li>';
  endforeach;
foreach($this->form->getFieldset('fields_logged')作为$field):
回音“
  • ”; echo$字段->标签; echo$字段->输入; 回音“
  • ”; endforeach;
    发现了一个类似的问题,而且…在时间方面没有多大帮助

    你知道为什么时间戳不起作用吗,或者有更好的方法吗


    谢谢

    好的,从你更新的问题来看,似乎有两个简单的误解

    只有当字段值为
    null
    时,才会设置
    默认值,因此它将在第一次保存时起作用,但随后由于存在值,它不会被当前时间戳替换

    当您使用一种类型的
    日历时
    只返回日期而不返回时间组件。如果您查看
    /libraries/joomla/html/parameter/element/calendar.php
    ,您将看到它要求
    '%Y-%m-%d'

    要更新时间戳,您需要修改模型,以便在获取项目时,它会使用当前日期和时间更新
    时间戳
    字段,例如
    $item->timestamp=JFactory::getDate()


    或者,如果您需要它尽可能精确到几分钟或几秒钟,可以在
    store()
    中对其进行更新。该项目可以打开,并且在几分钟内不会保存。这可能是更好的方法,因为您希望用户能够看到上次保存项目的时间。

    有一种更简单的方法来完成您想要的操作, 无需为模型写入覆盖, 我们为joomla中的calendar type字段指定另一个属性,请参阅

    您可以在代码中使用

     <field name="datepassed"
    type="calendar"
    label="Date Completed"
    default="NOW"    
     format="%d-%m-%Y H:i:s"
     /> 
    
    <field name="timestamp"
    type="calendar"
    label="Last Modified"
    default="NOW"
    readonly="true" 
    class="readonly"
    format="%d-%m-%Y H:i:s"
     />
    
    
    
    这只是您的表单,日期是只读的,您需要显示设置/更新“时间戳”字段的代码。完成-我只是在字段中循环,所以没有太多要显示的内容。这只是显示代码,您的问题是关于保存值。您的模型中的代码如何?这就是我使用的全部内容。第一个(datepassed)将日期保存得很好,并以
    0000-00-00 00:00:00
    的格式存储。我的所有文件看起来都像
    2012-08-28 00:00:00
    上面的文件说使用“NOW”作为默认值,但与时间无关。我也对它进行了一些编辑,希望更清楚。啊,这确实更有意义。谢谢对joomla 3.2版本的
    格式=“%d-%m-%Y H:i:s”
    有任何建议,但它在joomla 3.2.3中不起作用