我的时间格式是:2011-04-12 09:20:38 (非时间戳)搜索页:
<form action="content_list.php" method="POST">
<select name="dateline" id="dateline">
<option value="">请选择</option>
<?php
$today = date("Y-m-d",time()); 
$yesterday = date("Y-m-d",strtotime("Day"));
echo '<option value="'.date('Y-m-d',strtotime('0day')).'">当天数据</option>';echo "\r\n";
$yesterday = date("Y-m-d",strtotime("-1Day"));
echo '<option value="'.date('Y-m-d',strtotime('-1 day')).'">昨天数据</option>';echo "\r\n";
$yesterday = date("Y-m-d",strtotime("-2Day"));
echo '<option value="'.date('Y-m-d',strtotime('-2 day')).'">前天数据</option>';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=submit class=fstyle>
</form>搜索结果页:
<?php
session_start();
require_once '../session.php';
require_once '../inc/const.php';
$dateline = $_POST['dateline'];
$page  = $_GET ['page'] ? $_GET ['page'] : 1;
$page_size  = 30;
$sqlstr=get_sql("select * from content where dateline=????????????");
$s_list = $db->selectLimit ( $sqlstr, $page_size, ($page - 1) * $page_size );
$total_nums = $db->getRowsNum ( $sqlstr );
?>求获取传递变量方法和按时间段进行查询的mysql语句写法  谢谢!

解决方案 »

  1.   

    来个php高手帮忙下  谢谢了呀
      

  2.   

    请给出 dateline 字段的类型
      

  3.   

    dateline 字段的类型是 datetime
    我的时间格式是:2011-04-12 09:20:38
      

  4.   

    取变量的方式 怎么这样也不可以呢?$time1 = date('Y-m-d',$time)
    是不是我的mysql语句不正确啊
    我的sql语句是这样的month(dateline) = month(now())
      

  5.   

    $sqlstr = get_sql("select * from content where DATE_FORMAT(dateline, IF(LENGTH('$dateline')=10, '%Y-%m-%d', '%Y-%m'))='$dateline'");另外
    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";
    }
    应改写为
    for($i = 0; $i < 7; $i ++){
    $datebt = date("Y-m",strtotime("-".$i."Month"));  
    /*
    $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="'.$datebt.'">'.date('Y年m月', strtotime($datebt)).'的数据</option>';
    echo "\r\n";
    }
      

  6.   

    非常的感谢xuzuning的热情帮助
    我先试试,解决了,马上给分
    请问这个会存在8小时的时差么?
      

  7.   

    DATE_FORMAT(dateline, IF(LENGTH('$dateline')=10, '%Y-%m-%d', '%Y-%m'))='$dateline'")
    如果按月份进行查询的话  这样写dateline的开头的时间  和结束 的时间是一样的
    所以  没有办法按月份进行查询
    继续求助解决方法。