比如搜:2010-6-1  至  2010-6-30   日 之间的所有数据
或者搜:2010-1-1  至  2010-12-30  日 之间的所有数据
再加个可以搜昨天的数据
我的要求是:要求用户 用select 自己选择时间段进行搜索我的时间字段是:senddate  
数据库是时间戳:例:1274495635  (不是2010年5月22日 10:33:55格式)望高手来帮忙解决下。感激啊
分虽然不多,但问题解决,立即结贴。谢谢

解决方案 »

  1.   

    $startTime = "2010-6-1 00:00:00";
    $stime = strtotime($startTime);$endTime = "2010-6-30 23:59:59";
    $etime = strtotime($endTime);$sql="select * from tablename where senddate>='{$stime}' and senddate<='{$etime}';";
      

  2.   

    strtotime的参数格式应该是完整的时间格式,年月日小时分秒。
      

  3.   

    还要注意strtotime($endTime);的结果与数据库senddate保存的时间戳,是否存在时间差??
    如果存在则需要修复下strtotime($endTime);的结果。(即根据时间差加上或减去对应的秒数)
      

  4.   

    直接帮我按照下面的写好吧  本人很菜啊  谢谢了啊<select name="senddate">
    <option value="">请选择</option>
    <option value="搜今天的数据">搜今天的数据</option>
    <option value="搜昨天的数据">搜昨天的数据</option>
    <option value="2010-6-1至2010-6-30日的数据">6月份数据</option>
    <option value="2010-6-1至2010-6-30日的数据">6月份数据</option>
    <option value="2010-1-1至2010-12-30日的数据">2010年数据</option>
    </select>
      

  5.   

    直接帮我按照下面的写好吧 本人很菜啊 谢谢了啊<select name="senddate">
    <option value="">请选择</option>
    <option value="搜今天的数据">搜今天的数据</option>
    <option value="搜昨天的数据">搜昨天的数据</option>
    <option value="2010-5-1至2010-5-30日的数据">5月份数据</option>
    <option value="2010-6-1至2010-6-30日的数据">6月份数据</option>
    <option value="2010-7-1至2010-7-30日的数据">7月份数据</option>
    <option value="2010-8-1至2010-8-30日的数据">8月份数据</option>
    <option value="2009-1-1至2009-12-30日的数据">2009年数据</option>
    <option value="2010-1-1至2010-12-30日的数据">2010年数据</option>
    </select>
      

  6.   

    <?php$today = date("Y-m-d",time()); 
    $bt = strtotime($today." 00:00:00"); 
    $et = strtotime($today." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">今天数据</option>';
    echo "\r\n";$yesterday = date("Y-m-d",strtotime("-1Day")); 
    $bt = strtotime($yesterday." 00:00:00"); 
    $et = strtotime($yesterday." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">昨天数据</option>';
    echo "\r\n";for($i = 0; $i < 7; $i ++){$txtbt = date("Y-m",strtotime("-".$i."Month"))."-1"; 
    $txtet = date("Y-m",strtotime("-".$i."Month"))."-".date('t', $bt); $bt = strtotime(date("Y-m",strtotime("-".$i."Month"))."-1 00:00:00"); 
    $et = strtotime(date("Y-m",strtotime("-".$i."Month"))."-".date('t', $bt)." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">'.$txtbt.'至'.$txtet.'的数据</option>';
    echo "\r\n";}?>
    改成这样不就容易比较了!? <?php
    $bet = explode('-', $_POST['senddate']);
    $sql = "................where senddate between ".$bet[0]." and ".$bet[1];
    ............................
    ?>
      

  7.   


    <?php
    $today = date("Y-m-d",time()); 
    $bt = strtotime($today." 00:00:00"); 
    $et = strtotime($today." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">今天数据</option>';
    echo "\r\n";$yesterday = date("Y-m-d",strtotime("-1Day")); 
    $bt = strtotime($yesterday." 00:00:00"); 
    $et = strtotime($yesterday." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">昨天数据</option>';
    echo "\r\n";for($i = 0; $i < 7; $i ++){$datebt = date("Y-m",strtotime("-".$i."Month"))."-1"; 
    $dateet = date("Y-m",strtotime("-".$i."Month"))."-".date('t', $bt); $bt = strtotime($datebt." 00:00:00"); 
    $et = strtotime($dateet." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">'.date('Y年m月', $bt).'的数据</option>';
    echo "\r\n";}?>
      

  8.   


    <?php
    $today = date("Y-m-d",time()); 
    $bt = strtotime($today." 00:00:00"); 
    $et = strtotime($today." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">今天数据</option>';
    echo "\r\n";$yesterday = date("Y-m-d",strtotime("-1Day")); 
    $bt = strtotime($yesterday." 00:00:00"); 
    $et = strtotime($yesterday." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">昨天数据</option>';
    echo "\r\n";for($i = 0; $i < 7; $i ++){$datebt = date("Y-m",strtotime("-".$i."Month"))."-1"; 
    $dateet = date("Y-m",strtotime("-".$i."Month"))."-".date('t', $datebt); $bt = strtotime($datebt." 00:00:00"); 
    $et = strtotime($dateet." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">'.date('Y年m月', $bt).'的数据</option>';
    echo "\r\n";}?>
      

  9.   

    感谢这么多的大侠指教。哪option如何获取值呢?<select name="senddate">
    <option value="">请选择</option>
    <option value="搜今天的数据">搜今天的数据</option>
    <option value="搜昨天的数据">搜昨天的数据</option>
    <option value="2010-5-1至2010-5-30日的数据">5月份数据</option>
    <option value="2010-6-1至2010-6-30日的数据">6月份数据</option>
    <option value="2010-7-1至2010-7-30日的数据">7月份数据</option>
    <option value="2010-8-1至2010-8-30日的数据">8月份数据</option>
    <option value="2009-1-1至2009-12-30日的数据">2009年数据</option>
    <option value="2010-1-1至2010-12-30日的数据">2010年数据</option>
    </select>
      

  10.   

    直接$POST['senddate']应该就获取到了,你试试
      

  11.   

    我是这样做的,不行  读不到任何数据<? require("connection.php"); ?>
    <? require("tools.php"); ?>
    <? //require("checkpass.php"); ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>按发布人+时间搜索全站文章</title>
    <? if($addedit_subed!="true"){ //********************** ?>
    <script language="JavaScript" src="check.js"></script>
    <script LANGUAGE="javascript">
    <!--
    function add_onsubmit(add) {
    //if (!checkvalue(add.title,0,0,1,"标题")) return false;
    //if (!checkvalue(add.writer,0,0,1,"发布人")) return false;
    }
    //-->
    </SCRIPT>
    <? } //*************************************************?>
    <style type="text/css">
    <!--
    body,td,th {font-size: 12px;}
    -->
    </style></head>
    <body bgcolor="#FFFFFF"><? require("top.inc"); ?>
    <form method=GET action=renaiask_list.php name=add LANGUAGE=javascript onSubmit="return add_onsubmit(this)">
    <div align=center>
    <table width=562 border=0 align="center" cellpadding=0 cellspacing=1>
    <tr>
    <td>
    发布人:
    <select name="writer" size=1>
    <option value="">请选择</option>
    <option value="1111111">11111111</option>
    <option value="admin">admin</option>
    </select>
    <select name="writer" size=1>
    <option value="">请选择</option>
    <option value="senddate">
    <?php
    $bet = explode('-', $_POST['senddate']);
    $sql = "select * from dede_archives where senddate between ".$bet[0]." and ".$bet[1];
    ?>
    <?php
    $today = date("Y-m-d",time()); 
    $bt = strtotime($today." 00:00:00"); 
    $et = strtotime($today." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">今天数据</option>';
    echo "\r\n";$yesterday = date("Y-m-d",strtotime("-1Day")); 
    $bt = strtotime($yesterday." 00:00:00"); 
    $et = strtotime($yesterday." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">昨天数据</option>';
    echo "\r\n";for($i = 0; $i < 7; $i ++){$txtbt = date("Y-m",strtotime("-".$i."Month"))."-1"; 
    $txtet = date("Y-m",strtotime("-".$i."Month"))."-".date('t', $bt); $bt = strtotime(date("Y-m",strtotime("-".$i."Month"))."-1 00:00:00"); 
    $et = strtotime(date("Y-m",strtotime("-".$i."Month"))."-".date('t', $bt)." 23:59:59"); echo '<option value="'.$bt.'-'.$et.'">'.$txtbt.'至'.$txtet.'的数据</option>';
    echo "\r\n";
    }
    ?>
    </option>
    <input type=submit value="提交"  name=B1 class=fstyle>
    </td>
    </tr>
    </table>
    </div>
    </form>
    <? require("bottom.inc"); ?>
    </body>
    </html>
      

  12.   

    <form method="post" action=renaiask_list.php 
    ................post
      

  13.   

    <? require("connection.php"); ?>
    <? require("tools.php"); ?>
    <? //require("checkpass.php"); ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>按发布人+时间搜索全站文章</title>
    <? if($addedit_subed!="true"){ //********************** ?>
    <script language="JavaScript" src="check.js"></script>
    <script LANGUAGE="javascript">
    <!--
    function add_onsubmit(add) { 
    //if (!checkvalue(add.title,0,0,1,"标题")) return false;
    //if (!checkvalue(add.writer,0,0,1,"发布人")) return false;
    }
    //-->
    </SCRIPT>
    <? } //*************************************************?>
    <style type="text/css">
    <!--
    body,td,th {font-size: 12px;}
    -->
    </style></head>
    <body bgcolor="#FFFFFF"><? require("top.inc"); ?>
    <form method=POST action=renaiask_list.php onSubmit="return add_onsubmit(this)">
    <div align=center>
    <table width=562 border=0 align="center" cellpadding=0 cellspacing=1>
    <tr>
    <td>
    发布人:
    <select name="writer">
    <option value="">请选择</option>
    <option value="1111111">11111111</option>
    <option value="admin">admin</option>
    </select>
    <select name="senddate">
    <option value="">请选择</option>
    <?php
    $today = date("Y-m-d",time()); 
    $bt = strtotime($today." 00:00:00"); 
    $et = strtotime($today." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">今天数据</option>';
    echo "\r\n";$yesterday = date("Y-m-d",strtotime("-1Day")); 
    $bt = strtotime($yesterday." 00:00:00"); 
    $et = strtotime($yesterday." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">昨天数据</option>';
    echo "\r\n";for($i = 0; $i < 7; $i ++){$datebt = date("Y-m",strtotime("-".$i."Month"))."-1"; 
    $dateet = date("Y-m",strtotime("-".$i."Month"))."-".date('t', $datebt); $bt = strtotime($datebt." 00:00:00"); 
    $et = strtotime($dateet." 23:59:59"); 
    echo '<option value="'.$bt.'-'.$et.'">'.date('Y年m月', $bt).'的数据</option>';
    echo "\r\n";}?>
    </select>
    <input type=submit value="提交" name=B1 class=fstyle>
    </td>
    </tr>
    </table>
    </div>
    </form>
    <? require("bottom.inc"); ?>
    </body>
    </html>
    renaiask_list.php代码如下:
    <?php
    $bet = explode('-', $_POST['senddate']);
    $sql = "select * from dede_archives where senddate between ".intval($bet[0])." and ".intval($bet[1]);
    .....................................
    ?>
      

  14.   

    楼上的  太感谢了
    能准确的按时间搜出信息了但按发布人选择的有失去了功效了哦发布人:
    <select name="writer">
    <option value="">请选择</option>
    <option value="1111111">11111111</option>
    <option value="admin">admin</option>
    </select>不能按发布人搜了  只有日期了
    能再帮忙看看么?
      

  15.   

    现在只能按时间搜索了
    比如我选择作者 admin        选择时间 2010年6月份数据
    搜出来的信息确实全部是6月份的数据
    但是 显示的不是admin一个人发布的,是只要在6月份有发布信息的人都显示出来了我的搜索条件只有2个  先选择作者  再选择时间  搜出指定数据谁能再帮忙看看啊
      

  16.   

    可能是GET  和  POST  的传递方式的原因引起的
      

  17.   

    jianye112大侠  怎么不来了呀55555555555555555555
      

  18.   


    renaiask_list.php代码如下:
    <?php
    $writer = $_POST['writer'];
    $bet = explode('-', $_POST['senddate']);
    $sql = "select * from dede_archives where senddate between ".intval($bet[0])." and ".intval($bet[1])." and writer='".$writer."'";
    .....................................
    ?>
      

  19.   

    select * from 表 where time>='2009-01-01' and time<='2010-01-01' 
      

  20.   

    mysql 按年度、季度、月度、周、日SQL统计查询
      

  21.   


    select * from @#__tbname where senddate between unix_timestamp('$date_start') and unix_timestamp('$date_end')