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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已答复] (littlehz请再进来一下)日期条件的IF语句怎么写?

[复制链接]
beck2005 发表于 2009-6-28 21:32:09 | 显示全部楼层 |阅读模式
本帖最后由 beck2005 于 2009-7-1 11:20 编辑

我想写个日期条件的IF语句,将最近三天内的资讯与三天以前的资讯以不同的样式显示,请问判断条件表达式怎么写?如下示意:

<!--{if 最近三天}-->
   样式一显示
<!--{else}-->
   样式二显示
<!--{/if}-->

请各位站长不吝赐教,谢谢各位的帮助!!
littlehz 发表于 2009-6-28 21:59:18 | 显示全部楼层
  1. <?php
  2. $time_now= time();
  3. ?>
复制代码
以上php语句将获取到现在的服务器时间,暂时存储在$time_now变量中,该值是UNIX时间戳类型。资讯列表的发布时间$value['dateline']也是UNIX时间戳,可以直接想减。
在loop循环中判断
  1. <!--{if ($time_now - $value['dateline'] > 3*24*3600) }-->
复制代码
即可
回复

使用道具 举报

 楼主| beck2005 发表于 2009-6-29 11:18:02 | 显示全部楼层
本帖最后由 beck2005 于 2009-7-1 10:46 编辑

littlehz,,谢谢!
可是好象行不通,我把代码贴在下面,请给我看看哪里不对?
  1.             <!--{block name="spacenews" parameter="catid/$cat[subcatid]/order/i.dateline DESC/limit/0,1/cachetime/$ctime/subjectlen/40/cachename/newslist/tpl/data"}-->
  2.             <!--{loop $_SBLOCK['newslist'] $value}-->
  3.             <? $time_now = time(); ?>
  4.             <!--{if ($time_now - $value['dateline'] > 3*24*3600) }-->
  5.                 <li><cite><font color="#ff0000">#date("m-d", $value["dateline"])# </font></cite><a href="$value[url]">$value[subject]</a></li>
  6.             <!--{else}-->
  7.                 <li><cite>#date("m-d", $value["dateline"])# </cite><a href="$value[url]">$value[subject]</a></li>
  8.             <!--{/if}-->
  9.             <!--{/loop}-->
复制代码
回复

使用道具 举报

 楼主| beck2005 发表于 2009-7-1 10:49:38 | 显示全部楼层
各位站长给我看看,谢谢!
回复

使用道具 举报

littlehz 发表于 2009-7-1 17:03:27 | 显示全部楼层
本帖最后由 littlehz 于 2009-7-1 17:05 编辑
  1. <?php $time_now= time(); ?>
复制代码
是PHP程序的方法,只能写在PHP程序中。也可以写在SS的频道程序执行文件
如果写在SS的模板中,要用这样的语句

  1. {eval $time_now=time();}
复制代码
判断最近三天,应该是用 <= 号,获取时间的语句不应放在loop循环中,放loop循环中会每次循环都重新读取服务器当前时间,没必要,相差才几个毫秒,还影响页面执行效率。
完整的代码,试试这个:

  1. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;<!--{block name="spacenews" parameter="catid/$cat[subcatid]/order/i.dateline DESC/limit/0,1/cachetime/$ctime/subjectlen/40/cachename/newslist/tpl/data"}-->
  2.             {eval $time_now=time();}
  3. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;<!--{loop $_SBLOCK['newslist'] $value}-->
  4. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;<!--{if ($time_now - $value['dateline'] <= 3*24*3600) }-->
  5. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160; <li><cite><font color="#ff0000">#date("m-d", $value["dateline"])# </font></cite><a href="$value[url]">$value[subject]</a></li>
  6. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;<!--{else}-->
  7. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160; <li><cite>#date("m-d", $value["dateline"])# </cite><a href="$value[url]">$value[subject]</a></li>
  8. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;<!--{/if}-->
  9. &#160; &#160;&#160; &#160;&#160; &#160;&#160; &#160;<!--{/loop}-->
复制代码
不过你这个block limit限制就只取一条数据么?
回复

使用道具 举报

 楼主| beck2005 发表于 2009-7-2 06:30:33 | 显示全部楼层
5# littlehz


你真的很强!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 19:30 , Processed in 0.024032 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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