【问题标题】:Joomla, JForm: Date and time aren't being savedJoomla,JForm:日期和时间没有被保存
【发布时间】:2012-08-23 10:59:26
【问题描述】:

Joomla 开发人员的新手,编写了一个简单的后端组件,其中我有两个日期字段。一个是用户可以从日历弹出窗口中选择的日期(下面的第一个),第二个是用户无法更改但需要查看最后一个时间戳的日期/时间戳。在编辑表单中,第一个(日期已通过)正在工作并获取今天的日期。第二个(时间戳)仅在创建记录并且根本不保存时间时才有效。我需要它来始终获取当前时间和日期。

来自 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;

发现 this link 有类似的问题,而 this one from Joomla docs...虽然时间上没有太大帮助。

任何想法为什么该时间戳不起作用,或者有更好的方法吗?

谢谢!

【问题讨论】:

  • 这只是您的表单,日期是只读的,您需要显示设置/更新“时间戳”字段的代码。
  • 完成 - 我只是在田野间骑自行车,所以没什么可展示的。
  • 这只是显示代码,您的问题是关于保存值的问题,您的模型中的代码呢?
  • 这就是我正在使用的全部内容。第一个(datepassed)保存日期很好,并以0000-00-00 00:00:00的格式存储你如何也抓住时间 - 所有我的看起来像2012-08-28 00:00:00上面的文件说使用“NOW”作为默认值但不是时间差不多了。
  • 我也编辑了一点,希望更清楚。

标签: php joomla joomla2.5 joomla1.7 joomla1.6


【解决方案1】:

有一种更简单的方法可以做你想做的事, 无需为模型编写覆盖, 我们是 joomla 中日历类型字段的另一个属性,请参阅 http://docs.joomla.org/Calendar_form_field_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"
 />

【讨论】:

  • format="%d-%m-%Y H:i:s" 的 joomla 3.2 版本有任何建议,但它在 joomla 3.2.3 Stable 中不起作用
【解决方案2】:

好的,从您更新的问题来看,似乎存在两个简单的误解。

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

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

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

如果您需要精确到分钟和秒,则可以仅在store() 中更新它,因为可以想象该项目可能会被打开并且不会保存几分钟。这可能是更好的方法,因为您希望您的用户能够看到上次保存项目的时间。

【讨论】:

  • 啊,这确实更有意义。谢谢!
猜你喜欢
  • 2015-11-07
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
相关资源
最近更新 更多