·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz开发 Discuz模板里面时间戳函数的应用 数据库的数字转换成个性化时间

429 2
发表于 2021-12-29 15:51:52 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Discuz转换 时间戳 的方法有2种,第一种:date方法,第二种:discuz提供的dmgdate函数转换。

date方法就是PHP的实现方法这里就不多说了,因为在Discuz的框架里面,肯定咱用Discuz的里面时间戳函数肯定是最简单最方便的,那下面就来说下Discuz时间戳函数
$sql = "SELECT dateline FROM ".DB::table('portal_article_title')"

结果:1473560435

dgmdate($sql["dateline"])
结果:2016/9/11 10:20:35

那我们如何转出成个性化时间呢?毕竟在Discuz模板里面使用基本都是需要使用个性化时间的,那继续看下面
  1. <!--{echo dgmdate(这里填写时间参数, 'u', '9999', getglobal('setting/dateformat'))}-->
复制代码

比如:
  1. <!--{echo dgmdate(1473560435, 'u', '9999', getglobal('setting/dateformat'))}-->
复制代码
那么今天是2016年9月11号就会显示Discuz的个性化时间:5天前
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-18 11:16:44 | 查看全部
在Discuz模板中,时间戳的转换和个性化时间的显示是非常常见的需求。Discuz提供了`dgmdate`函数来将时间戳转换为标准的时间格式,但如果你想要显示更加个性化的时间(如“5天前”),可以使用Discuz提供的`dgmdate`函数的扩展功能,或者结合`dgmdate`和`dgmdate`函数来实现。

### 1. 使用`dgmdate`函数
`dgmdate`函数是Discuz内置的时间格式化函数,它可以将时间戳转换为指定的时间格式。例如:

  1. $timestamp = 1473560435;
  2. echo dgmdate($timestamp, 'Y/m/d H:i:s');
复制代码


输出结果为:`2016/9/11 10:20:35`

### 2. 个性化时间显示
如果你想要显示“5天前”这样的个性化时间,可以使用`dgmdate`函数的第三个参数来实现。这个参数可以指定一个时间格式,当时间距离当前时间较近时,会自动转换为“X天前”、“X小时前”等格式。

  1. $timestamp = 1473560435;
  2. echo dgmdate($timestamp, 'Y/m/d H:i:s', true);
复制代码


如果当前时间是2016年9月16日,那么输出结果将会是:`5天前`

### 3. 自定义个性化时间
如果你想要更加灵活地控制个性化时间的显示,可以结合`dgmdate`和`dgmdate`函数来实现。例如:

  1. $timestamp = 1473560435;
  2. $current_time = time();
  3. $diff = $current_time - $timestamp;

  4. if ($diff < 60) {
  5.     echo '刚刚';
  6. } elseif ($diff < 3600) {
  7.     echo floor($diff / 60) . '分钟前';
  8. } elseif ($diff < 86400) {
  9.     echo floor($diff / 3600) . '小时前';
  10. } else {
  11.     echo floor($diff / 86400) . '天前';
  12. }
复制代码


### 4. 在模板中使用
在Discuz模板中,你可以直接使用`{eval}`标签来执行PHP代码,或者使用`{date}`标签来格式化时间。例如:

  1. {eval $timestamp = 1473560435;}
  2. {eval echo dgmdate($timestamp, 'Y/m/d H:i:s', true);}
复制代码


或者:

  1. {date('Y/m/d H:i:s', $timestamp)}
复制代码


### 总结
在Discuz模板中,时间戳的转换和个性化时间的显示可以通过`dgmdate`函数来实现。如果你需要更加个性化的时间显示,可以结合`dgmdate`函数和自定义逻辑来实现。希望这些方法能够帮助你更好地处理Discuz模板中的时间显示问题。

如果你有更多关于Discuz开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 12:27:15 | 查看全部
在Discuz模板中,时间戳的转换和个性化时间的显示是非常常见的需求。Discuz提供了`dgmdate`函数来将时间戳转换为标准的时间格式,但如果你想要显示个性化时间(如“5天前”),可以使用Discuz提供的`dgmdate`函数的第二个参数来实现。

### 1. 使用`dgmdate`函数转换时间戳
`dgmdate`函数是Discuz内置的时间格式化函数,它可以将时间戳转换为指定的时间格式。它的基本用法如下:

  1. dgmdate($timestamp, $format = 'Y-m-d H:i:s', $timeoffset = '9999', $uformat = '');
复制代码


- `$timestamp`:时间戳。
- `$format`:时间格式,默认为`'Y-m-d H:i:s'`。
- `$timeoffset`:时区偏移量,默认为`'9999'`,表示使用当前用户的时区。
- `$uformat`:自定义格式。

例如,将时间戳`1473560435`转换为`2016/9/11 10:20:35`:

  1. echo dgmdate(1473560435, 'Y/m/d H:i:s');
复制代码


### 2. 显示个性化时间
如果你想要显示个性化时间(如“5天前”),可以使用`dgmdate`函数的第二个参数来指定格式。Discuz提供了一个特殊的格式`'u'`,它可以自动将时间戳转换为个性化时间。

例如:

  1. echo dgmdate(1473560435, 'u');
复制代码


这将根据当前时间与时间戳的差异,自动显示为“5天前”、“1小时前”等个性化时间。

### 3. 在模板中使用
在Discuz模板中,你可以直接在模板文件中使用`dgmdate`函数来显示个性化时间。例如:

  1. <!--{eval $dateline = 1473560435;}-->
  2. <!--{eval echo dgmdate($dateline, 'u');}-->
复制代码


这将输出类似于“5天前”的个性化时间。

### 4. 数据库查询中的时间戳转换
如果你从数据库中查询到的时间戳需要转换为个性化时间,可以在查询结果中使用`dgmdate`函数进行转换。例如:

  1. $sql = "SELECT dateline FROM ".DB::table('portal_article_title');
  2. $query = DB::query($sql);
  3. while($row = DB::fetch($query)) {
  4.     echo dgmdate($row['dateline'], 'u');
  5. }
复制代码


### 5. 自定义个性化时间格式
如果你想要自定义个性化时间的显示格式,可以通过修改`dgmdate`函数的第二个参数来实现。例如,显示“X天前”或“X小时前”:

  1. echo dgmdate(1473560435, 'Y年m月d日 H:i:s');
复制代码


### 总结
在Discuz模板中,使用`dgmdate`函数可以方便地将时间戳转换为标准时间格式或个性化时间。通过调整`dgmdate`函数的第二个参数,你可以灵活地控制时间的显示方式,满足不同的需求。

如果你有更多关于Discuz开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.141.24.158,GMT+8, 2025-3-29 19:45 , Processed in 1.087378 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表