Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已答复] 高手请出招,给最新发布的资讯后面添加new图标(已经写了大半部分,遇到难题了)

[复制链接]
marslulu 发表于 2009-10-30 03:03:47 | 显示全部楼层 |阅读模式
首先声明我是菜鸟。

目的:想在最近7天发布的资讯后面增加一个new图标;

思路:利用js,将当前日期(today)减去资讯的发布日期,如果小于7,则显示new图标,反之则不显示;

代码:
  1. <!--此处插入对新闻日期的判断-->
  2. <SCRIPT language=javascript><!--
  3. PostDay=new Date(2009,10,25);//这里应该是资讯的发布日期
  4. today=new Date();
  5. timeold=(today.getTime()-PostDay.getTime());
  6. sectimeold=timeold/1000
  7. secondsold=Math.floor(sectimeold);
  8. msPerDay=24*60*60*1000
  9. e_daysold=timeold/msPerDay
  10. daysold=Math.floor(e_daysold);
  11. e_hrsold=(e_daysold-daysold)*24;
  12. hrsold=Math.floor(e_hrsold);
  13. e_minsold=(e_hrsold-hrsold)*60;
  14. minsold=Math.floor((e_hrsold-hrsold)*60);
  15. seconds=Math.floor((e_minsold-minsold)*60);
  16. //-->
  17. </SCRIPT>
  18. <SCRIPT language=javascript><!--
  19. if (daysold < 7) //此处你可以更改最近几天的资讯后面显示new图标
  20. {
  21. document.write("<img src=http://bbs.ibabyheart.com/images/common/juanxin.gif width=14 height=14>")  //此处你可以更改自己的图片
  22. }
  23. //-->
  24. </SCRIPT>
复制代码
难题在于,我如何调用php中资讯的发布日期???

官方模板中可以这样调用:#date('y,m,d', $value['dateline'])#    但是替换到js代码中似乎没有效果,js和php调用日期函数应该是不同的规则吧,该怎么写呢?
回复

使用道具 举报

 楼主| marslulu 发表于 2009-10-30 03:04:47 | 显示全部楼层
如有高手解决此问题,将提供详细设置办法。
回复

使用道具 举报

 楼主| marslulu 发表于 2009-10-30 09:15:52 | 显示全部楼层
  1. <!--此处插入对新闻日期的判断-->
  2. <SCRIPT language=javascript>
  3. PostDay=new Date('y,m,d', $value['dateline']);//这里应该是资讯的发布日期
  4. today=new Date();
  5. timeold=(today.getTime()-PostDay.getTime());
  6. sectimeold=timeold/1000
  7. secondsold=Math.floor(sectimeold);
  8. msPerDay=24*60*60*1000
  9. e_daysold=timeold/msPerDay
  10. daysold=Math.floor(e_daysold);
  11. e_hrsold=(e_daysold-daysold)*24;
  12. hrsold=Math.floor(e_hrsold);
  13. e_minsold=(e_hrsold-hrsold)*60;
  14. minsold=Math.floor((e_hrsold-hrsold)*60);
  15. seconds=Math.floor((e_minsold-minsold)*60);
  16. //-->
  17. if (daysold < 7) //此处你可以更改最近几天的资讯后面显示new图标
  18. {
  19. document.write("<img src=http://bbs.ibabyheart.com/icon/new002.gif>")  //此处你可以更改自己的图片
  20. }
  21. </SCRIPT>
复制代码
这样不行?
回复

使用道具 举报

lidq.jingwu 发表于 2009-10-30 09:22:16 | 显示全部楼层
1# marslulu


    你要的是php与JS通信,而且是php向JS中单向通信。在模板中的JS代码中加上模板的标签语句,如:
var datejs=<!--{eval echo $value[dateline];}-->
这样JS是可以接收到数据的。
回复

使用道具 举报

huaxuanso 发表于 2009-10-30 09:39:43 | 显示全部楼层
图标呢???
回复

使用道具 举报

 楼主| marslulu 发表于 2009-10-30 20:33:05 | 显示全部楼层
OK,要的就是这句,马上测试。
回复

使用道具 举报

 楼主| marslulu 发表于 2009-10-30 20:42:25 | 显示全部楼层
huaxuanso兄弟,图片地址在第19行啊。
回复

使用道具 举报

 楼主| marslulu 发表于 2009-11-6 07:18:29 | 显示全部楼层
  1. <!--此处插入对新闻日期的判断-->
  2. <SCRIPT language=javascript>
  3. var datejs={eval echo $value[dateline];}
  4. PostDay=new Date('y,m,d', 'datejs');//这里应该是资讯的发布日期
  5. today=new Date();
  6. timeold=(today.getTime()-PostDay.getTime());
  7. 此处省略N行不重要数据。。。。
  8. </SCRIPT>
复制代码
请JS高手看看这段代码前两行写法正确么?多谢
回复

使用道具 举报

littlehz 发表于 2009-11-6 09:15:41 | 显示全部楼层
完全没必要用js判断吧,用php判断输出即可,js判断更耗浏览器资源
回复

使用道具 举报

 楼主| marslulu 发表于 2009-11-7 03:11:46 | 显示全部楼层
谢谢littlehz版主的关注,我也想到了用php代码进行判断;
但是有一点无法回避:在模板文件里面是无法运行php代码的,因为从设计者的角度来说屏蔽了这个功能。
所以我只能从js这个角度来实现这个功能;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-11-21 11:35 , Processed in 0.109537 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表