【问题标题】:Drupal CCK Date: how to set datetime field's default value to a fix date?Drupal CCK 日期:如何将日期时间字段的默认值设置为固定日期?
【发布时间】:2010-05-03 06:43:29
【问题描述】:

我有一个 CCK 日期时间字段,想将其默认值设置为 2011 年 5 月 31 日。 当我进入该字段的配置时,我可以将默认值设置为NowBlankRelative

Relative 由 PHP 的 strtotime 参数设置。但是,当我将其设置为时它失败了

  • 31 May 2011 --> 我今天在节点添加表单中得到了
  • last day of May 2011 --> 字段配置页面出现错误The Strtotime default value for the To Date is invalid.

(根据http://php.net/manual/en/function.strtotime.php应该正常工作)

您知道如何将其设置为默认日期为 2011 年 5 月 31 日吗?

【问题讨论】:

    标签: php datetime drupal drupal-6 strtotime


    【解决方案1】:

    我认为 CCK 日期设置页面的“自定义默认值”部分尚不支持绝对日期。但是,您应该可以通过自定义模块中的 hook_form_alter 执行此操作(将模块名称、$form_id 和字段名称替换为您的):

    function mymodule_form_alter(&$form, $form_state, $form_id) {   
      if ($form_id == 'myform') {
        $mydate = date('Y-m-d', strtotime('31 May 2011')) ;
        $form['field_my_date'][0]['#default_value']['value'] = $mydate ;
      }
    }
    

    【讨论】:

    • 谢谢你的回复,丹。我希望有一些更简单的解决方案。为这么简单的目的写一个钩子我觉得不太好,尤其是当出现许多其他类似的形式时,模块将变成一个大的开关指令。 ;-)
    • 如果有更简单的方法就好了……我查看了drupal.org/project/issues/date?text=default 上的一些帖子,但似乎还没有。例如。见drupal.org/node/326439drupal.org/node/331000,其他人。
    • 我之前没有找到这些帖子。谢谢。无论如何,缺少简单功能有点奇怪,而您可以使用strtotime()。让我们希望他们能弥补这一点。 :)
    • 如果您找到更好的方法,请告诉我们!如果您觉得这有帮助,也请点赞。
    • 当然,我会发布找到的最佳解决方案。如果我的声誉 >=15 需要投票,我会投票给你的答案。
    猜你喜欢
    • 2019-08-19
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多