dede使用loop前端调用自定义表单内容让时间显示正常的方法

2020-04-01 11:59 锐途网 主页 > 网站制作 > 技巧/常识 >
浏览

     今天在给客户做网站【有话说】版块的时候,就碰到一位客户要使用织梦自定义表单,然后在前台显示发布时间的功能,更要命的时候要他显示自定义表单当前提交的日期,找遍了整个互联网的答案都没有找到需要的,结果自己给搞出来了,现在给大家分享下代码:

    {dede:loop table='dede_diyform2' sort='' row='10' if=''}
                <span>用户:[field:name/] 时间:[field:time function="GetDateTimeMK(@me)"/] </span>
                <p>[field:beizhu/]</p>
                {/dede:loop}

说明:dede_diyform2  表示当前自定义表单的数据库表名称;name、beizhu是定义的字段名称;

          [field:time function="GetDateTimeMK(@me)"/] 调用当前时间正确显示形式:2020-4-1 10:36:22

相关分享:

我们在用织梦dedecms添加自定义表单时有时想要设置一个用户提交的时间,方便查询,比如我们的网站管理人员在查看留言、询盘等信息的时候,关注到客户发表信息的时间,那么,dedecms自定义表单增加添加时间怎么弄呢?

一、在自定义表单中添加字段,在后台找到:核心 - 频道模型 - 自定义表单,添加时间字段 shijian,

二、在调用表单的页面中加入代码,本例中是/templets/****mb/list_liuyan.htm

<input type='hidden' name='shijian' id='shijian'/>
<script  language="javascript" type="text/javascript">
  var wdtime= new Date();
  document.getElementById("shijian").value=wdtime.toLocaleString();
</script>
<input type="hidden" name="dede_fields" value="name,text;phone,text;select;time,text;shijian,datetime" />


注意:name一定要和刚刚设置的数据字段名一致,本例是shijian。还有要把shijian,datetime这个值要传递过去。

代码也可以用以下两种:

复制代码
<input name="shijian" value="" type="hidden" id="shijian"  class="intxt">
<script type="text/javascript">
window. function(){
var nowDate = new Date();
var str = nowDate.getFullYear()+"-"+(nowDate.getMonth() + 1)+"-"+nowDate.getDate()+" "+nowDate.getHours()+":"+nowDate.getMinutes()+":"+nowDate.getSeconds();
document.getElementById("shijian").value=str;
}
</script>
复制代码

或者:

<input type="hidden" name="shijian" id="shijian" value="{dede:php} echo $showtime=date('Y-m-d H:i:s');{/dede:php}"> 

三、比较重要的一步,在系统模板中添加/***ht(默认的后台地址是dede)/templets/diy_list.htm大概42行左右的else前面或后面加入下面的代码:

if($fielddata[1]=='datetime')
{
    $fields[$field] = GetDateTimeMk($fields[$field]);
}

上传修改好的文件,重新生成页面就可以了。