给新增的标题后做标记?? 谢谢!楼上的,“时间用UNIX时间戳记录”??,偶基础差,能说明白点么?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /** @return $imgstr* @param $aimdate 目標時間* @param $todate 時間條件* @param $imgstr 圖片代碼* @desc 檢查目標時間距現在時間是否滿足時間條件,若滿足,返回指定內容*/ function datechk($aimdate, $todate, $imgstr){ $tmp=explode('-',$aimdate); if(date('Y-m-d')<=date('Y-m-d',mktime(0,0,0,$tmp[1],$tmp[2]+$todate,$tmp[0]))){ return ' '.$imgstr; }}$aimdate='2004-11-03';$todate='7';$imgstr='<img src="test.gif">';echo datechk($aimdate, $todate, $imgstr); $point = time()-3600*24; // 24小时前的时间戳记if ($timeline > $point) { //如果是24小时内新增的 $topic .= "(new)";}// $timeline : 这个新闻的时间戳记// $topic : 新闻标题 弱弱的问问:$aimdate='2004-11-03';$todate='7';是给它赋值?如果$aimdate不是'2004-11-03' 呢? 谢谢!ps 小刀:// $timeline : 这个新闻的时间戳记 ——是新闻发布的时间?? <?function subday($regtime){ //计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U"); $y1=substr($regtime,0,4)+0; $m1=substr($regtime,4,2)+0; $d1=substr($regtime,6,2)+0; $reg_time1="0,0,01,".$m1.",".$d1.",".$y1; //$reg_time1="0,0,0,02,01,2003"; // echo $reg_time1; //mktime 参数都要int $qtime=mktime($reg_time1); $qtime=mktime(0,0,0,$m1,$d1,$y1); //echo date("Ymd",mktime(0,0,0,$m1,$d1,$y1)); $day_num=($qtime-$ptime)/(3600*24); //echo $day_num; $sub_day1=ceil($day_num); //echo $sub_day1; return $sub_day1;}//$regtime=新闻发布时间; //格式要转换一下,如$regtime="20041105";$regtime="20041104";//随便改个日期试试$days=subday($regtime)*(-1);echo "时间差为".$days."天<BR>";if($days<=2){echo "new";//换上图片也可以}?> 谢谢!<?phpfunction subday($regtime){ //计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U"); $y1=substr($regtime,0,4)+0; $m1=substr($regtime,4,2)+0; $d1=substr($regtime,6,2)+0; $reg_time1="0,0,01,".$m1.",".$d1.",".$y1; //$reg_time1="0,0,0,02,01,2003"; //mktime 参数都要int $qtime=mktime($reg_time1); $qtime=mktime(0,0,0,$m1,$d1,$y1); $day_num=($qtime-$ptime)/(3600*24); $sub_day1=ceil($day_num); return $sub_day1;}//$regtime=新闻发布时间;$regtime=$fday;$days=subday($regtime)*(-1);//echo "时间差为".$days."天<BR>";if($days<=2){echo "<img src = 'images/new.gif' border = '0'>";}?>我把它用在<a href="readnews.php?id=<?=$fid?>" target="_blank" class="two"> <?=$ftitle?></a>的后面,第一个标题还正常显示,到第二个就报错:· 标题2 Fatal error: Cannot redeclare subday() (previously declared in E:\ry\gxyy\index.php:104) in E:\ry\gxyy\index.php on line 104咋回事呢??line 104是function subday($regtime) 加一个时间字段 如果时间是最近的就加一个new 设表中有字段time用于保存插入时间,则SELECT *,to_days(now())-to_days(time) as day FROM tbl_name在查询结果中将有day一列,表示插入后到今天的天数。你只需在输出时判断一下if($row['day'] <= 2) echo 'new'; function subday($regtime){ //计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U"); $y1=substr($regtime,0,4)+0; $m1=substr($regtime,4,2)+0; $d1=substr($regtime,6,2)+0; $reg_time1="0,0,01,".$m1.",".$d1.",".$y1; //$reg_time1="0,0,0,02,01,2003"; //mktime 参数都要int $qtime=mktime($reg_time1); $qtime=mktime(0,0,0,$m1,$d1,$y1); $day_num=($qtime-$ptime)/(3600*24); $sub_day1=ceil($day_num); return $sub_day1;}这段代码一个页面内只能包含一次,函数不能重复申明。见议你在调用这个函数的页面的尾部加上这段代码,不要放在include require的文件里 $twoday = time()-3600*48; // 两天前的时间戳记if ($newstime > $twoday) { //如果新闻的时间戳记大于两天前的 $XXXX .= "(new)";}$twoday //表示两天前的时间戳记(就是一个整数)$newstime//表示新闻被加入时的时间戳记(也是一个整数)$XXXX .= "(new)";在新闻的标题后加上new 昨天停网5个小时,郁闷!偶的问题还是没解决,555555 <?phpinclude ("cgi_php/inc/conn.php");include ("cgi_php/inc/var.php");$query="select id,title,day from $gxyy_news where type='a' order by id desc limit 0,8";$result=@mysql_query($query) or die("query error");while($r=@mysql_fetch_row($result)){$fid=$r[0];$ftitle=$r[1];$fday=$r[2]; ?> <tr> <td height="20" valign="middle"> ·<a href="readnews.php?id=<?=$fid?>" target="_blank" class="two"> </a><a href="readnews.php?id=<?=$fid?>" target="_blank" class="two"> <?=$ftitle?></a><?phpfunction subday($regtime){ //计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U"); $y1=substr($regtime,0,4)+0; $m1=substr($regtime,4,2)+0; $d1=substr($regtime,6,2)+0; $reg_time1="0,0,01,".$m1.",".$d1.",".$y1; //$reg_time1="0,0,0,02,01,2003"; //mktime 参数都要int $qtime=mktime($reg_time1); $qtime=mktime(0,0,0,$m1,$d1,$y1); $day_num=($qtime-$ptime)/(3600*24); $sub_day1=ceil($day_num); return $sub_day1;}//$regtime=新闻发布时间; //格式要转换一下,如$regtime="20041105";$regtime=$fday;$days=subday($regtime)*(-1);//echo "时间差为".$days."天<BR>";if($days<=2){echo "<img src = 'images/new.gif' border = '0'>";}?> </td> </tr><?php}mysql_free_result($result);//mysql_close($connid);?>偶就是这样用那计时差函数的,报错了:Fatal error: Cannot redeclare subday() (previously declared in E:\ry\gxyy\index.php:104) in E:\ry\gxyy\index.php on line 104 要是用函数都报这个错,是咋回事呀??郁闷哦,函数也没放include require的文件里呀,55555555 xuzuning(唠叨) 的做法太好了 唠叨的简单,他的time是啥格式呀??如果是20041101这格式,遇到20041101-20041031,就出问题了??偶实在的笨哦 用mktime把现在的时间和发布的时间转换一下,然后相减,再除以86400(1天等于86400秒),如果结果大于2(即两天以前发的),则不是新的,否则为新的。 字段time 类型datetime很难想象不使用数据库提供的日期字段而非要自己用字符串或数值组装日期的原因 apache下 也发生HTTP500错误,求助如何解决,带程序,帮忙测试下 php的数组问题 mysql求平均值的问题,急! 怎么将C#中有BitConverter.Tostring的数据转化成字符串 求一个有点难度的正则表达式 数据库的建索引删索引是在网站上线以后改动的么? 这个php5 的pdo哪里出错啦?? 如何上传文件夹? 有个php+mssql的拍卖网站项目,报价20000元高吗? 用phpmyadmin导出数据会产生乱码,再导入的时候会出错!怎么解决呢? 分离语言包的时候,中间夹带变量怎么办? php怎样处理大xml文件
* @return $imgstr
* @param $aimdate 目標時間
* @param $todate 時間條件
* @param $imgstr 圖片代碼
* @desc 檢查目標時間距現在時間是否滿足時間條件,若滿足,返回指定內容
*/
function datechk($aimdate, $todate, $imgstr){
$tmp=explode('-',$aimdate);
if(date('Y-m-d')<=date('Y-m-d',mktime(0,0,0,$tmp[1],$tmp[2]+$todate,$tmp[0]))){
return ' '.$imgstr;
}
}
$aimdate='2004-11-03';
$todate='7';
$imgstr='<img src="test.gif">';
echo datechk($aimdate, $todate, $imgstr);
if ($timeline > $point) { //如果是24小时内新增的
$topic .= "(new)";
}// $timeline : 这个新闻的时间戳记
// $topic : 新闻标题
$aimdate='2004-11-03';
$todate='7';是给它赋值?
如果$aimdate不是'2004-11-03' 呢?
function subday($regtime)
{
//计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U");
$y1=substr($regtime,0,4)+0;
$m1=substr($regtime,4,2)+0;
$d1=substr($regtime,6,2)+0;
$reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
//$reg_time1="0,0,0,02,01,2003";
// echo $reg_time1; //mktime 参数都要int
$qtime=mktime($reg_time1);
$qtime=mktime(0,0,0,$m1,$d1,$y1);
//echo date("Ymd",mktime(0,0,0,$m1,$d1,$y1));
$day_num=($qtime-$ptime)/(3600*24);
//echo $day_num;
$sub_day1=ceil($day_num);
//echo $sub_day1;
return $sub_day1;
}//$regtime=新闻发布时间; //格式要转换一下,如$regtime="20041105";
$regtime="20041104";//随便改个日期试试
$days=subday($regtime)*(-1);
echo "时间差为".$days."天<BR>";
if($days<=2){
echo "new";
//换上图片也可以
}
?>
function subday($regtime)
{
//计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U");
$y1=substr($regtime,0,4)+0;
$m1=substr($regtime,4,2)+0;
$d1=substr($regtime,6,2)+0;
$reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
//$reg_time1="0,0,0,02,01,2003";
//mktime 参数都要int
$qtime=mktime($reg_time1);
$qtime=mktime(0,0,0,$m1,$d1,$y1);
$day_num=($qtime-$ptime)/(3600*24);
$sub_day1=ceil($day_num);
return $sub_day1;
}//$regtime=新闻发布时间;
$regtime=$fday;
$days=subday($regtime)*(-1);
//echo "时间差为".$days."天<BR>";
if($days<=2){
echo "<img src = 'images/new.gif' border = '0'>";
}
?>我把它用在<a href="readnews.php?id=<?=$fid?>" target="_blank" class="two">
<?=$ftitle?></a>的后面,第一个标题还正常显示,到第二个就报错:
· 标题2
Fatal error: Cannot redeclare subday() (previously declared in E:\ry\gxyy\index.php:104) in E:\ry\gxyy\index.php on line 104咋回事呢??line 104是function subday($regtime)
如果时间是最近的就加一个
new
SELECT *,to_days(now())-to_days(time) as day FROM tbl_name在查询结果中将有day一列,表示插入后到今天的天数。
你只需在输出时判断一下
if($row['day'] <= 2)
echo 'new';
{
//计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U");
$y1=substr($regtime,0,4)+0;
$m1=substr($regtime,4,2)+0;
$d1=substr($regtime,6,2)+0;
$reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
//$reg_time1="0,0,0,02,01,2003";
//mktime 参数都要int
$qtime=mktime($reg_time1);
$qtime=mktime(0,0,0,$m1,$d1,$y1);
$day_num=($qtime-$ptime)/(3600*24);
$sub_day1=ceil($day_num);
return $sub_day1;
}
这段代码一个页面内只能包含一次,函数不能重复申明。
见议你在调用这个函数的页面的尾部加上这段代码,不要放在include require的文件里
if ($newstime > $twoday) { //如果新闻的时间戳记大于两天前的
$XXXX .= "(new)";
}$twoday //表示两天前的时间戳记(就是一个整数)
$newstime//表示新闻被加入时的时间戳记(也是一个整数)
$XXXX .= "(new)";在新闻的标题后加上new
include ("cgi_php/inc/conn.php");
include ("cgi_php/inc/var.php");
$query="select id,title,day from $gxyy_news where type='a' order by id desc limit 0,8";
$result=@mysql_query($query) or die("query error");
while($r=@mysql_fetch_row($result))
{
$fid=$r[0];
$ftitle=$r[1];
$fday=$r[2]; ?>
<tr>
<td height="20" valign="middle"> ·<a href="readnews.php?id=<?=$fid?>" target="_blank" class="two">
</a><a href="readnews.php?id=<?=$fid?>" target="_blank" class="two">
<?=$ftitle?></a>
<?php
function subday($regtime)
{
//计算时差,返回天数格式 20040502到今天的时差 $ptime=date("U");
$y1=substr($regtime,0,4)+0;
$m1=substr($regtime,4,2)+0;
$d1=substr($regtime,6,2)+0;
$reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
//$reg_time1="0,0,0,02,01,2003";
//mktime 参数都要int
$qtime=mktime($reg_time1);
$qtime=mktime(0,0,0,$m1,$d1,$y1);
$day_num=($qtime-$ptime)/(3600*24);
$sub_day1=ceil($day_num);
return $sub_day1;
}//$regtime=新闻发布时间; //格式要转换一下,如$regtime="20041105";
$regtime=$fday;
$days=subday($regtime)*(-1);
//echo "时间差为".$days."天<BR>";
if($days<=2){
echo "<img src = 'images/new.gif' border = '0'>";
}
?>
</td>
</tr>
<?php
}
mysql_free_result($result);
//mysql_close($connid);
?>偶就是这样用那计时差函数的,报错了:
Fatal error: Cannot redeclare subday() (previously declared in E:\ry\gxyy\index.php:104) in E:\ry\gxyy\index.php on line 104 要是用函数都报这个错,是咋回事呀??郁闷哦,函数也没放include require的文件里呀,55555555
偶实在的笨哦
很难想象不使用数据库提供的日期字段而非要自己用字符串或数值组装日期的原因