小灰博客--小灰IT技术博客 | sky00.com

dede自定义表单的时间类型如何把时间戳转化为具体时间以及如何添加IP

经过后期补充这里提供两种方法:

第一种:
dede表单的时间类型在他自己的页面用JS控制的提交到后台就是具体时间,那么你在其他地方提交过去的就是时间戳了,后台显示的时间是一串数字很不爽!今天来说下解决方法!

首先你在添加字段的时候选择时间类型,在前台表单里这样写

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

当然也有人在value哪里用JS写,性质一样!这样写下提交到后台就是时间戳了!接下来说如何转化这个时间戳

编辑dede/templets/diy_list.htm这个文件,我的是5.7的,大约在42-43行把,就是那个else上面加一句判断,

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

如图:

 

20140616173039

这样就好了,转化后的最终效果

20140616173117

当然 如果你要想前台也公开显示的话就在修改下\dede\templets\plus\list_diyform.htm这个 !

第二种:
由于最近又发现个新问题补充下,按照上面的设置完会后台的提交时间是1970-01-01 有这种问题的网友可以用下面的方法(下面除了加提交时间把提交IP也加上了):
在plus/diy.php里找到

1
2
3
4
5
if($fieldinfo[1] == 'textdata')
{
${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
}

在后面添加一段代码(需要注意的是字段要和织梦后台添加的字段统一一致并且后台选择时间字段的类型是单行文本,比如我这里ip用的IP ,时间用的leotimes,我织梦后台也是,如图):

1
2
3
4
5
6
7
8
9
10
11
if($fieldinfo[1] == 'textdata')
{
if($fieldinfo[0] == 'ip')
{
${$fieldinfo[0]}=GetIP();
}
if($fieldinfo[0] == 'leotimes')
{
${$fieldinfo[0]}=date("Y-m-d H:i:s");
}
}

xzcsa0412130200

在前台表单里加相应的代码,(注意字段也要统一,另外验证数据库的表单代码需要重新复制下)

1
2
<input id="ip" name="ip" type="hidden" value="" />
<input id="leotimes" name="leotimes" type="hidden" value="" />

如果该文章帮到了您,不妨帮忙分享支持下博主!
同时也欢迎各位技术爱好者加入IT技术群(点击即可):70035098 互相交流学习!

分享该文章到:


发表评论

邮箱地址不会被公开。 必填项已用*标注