php做一个时间搜索应该怎么做?在线等!

php做一个时间搜索应该怎么做?在线等!,第1张

用where就可以,例如:

<?php

$startTime = strtotime("2013-10-01 10:10:10")//时间字符串转时间戳

$endTime   = strtotime("2013-12-01 10:10:10")

//table为表名,creatTime为创建时间

$sql = "select * from table where creatTime>=$startTime and creatTime<=$endTime"

?>

一般有两种访问:

方法一:

$sql="INSERT INTO `test` (`id`,`content`,`datetime`)values(NULL,'hello',now())"

$query=mysql_query($sql) //执行sql语句

//这种方法,你datetime字段要设计成date类型,now() 是mysql数据库提供的一个获取当前时间函数

方法二:

$sql="INSERT INTO `test` (`id`,`content`,`datetime`)values(NULL,'hello',".time().")"

$query=mysql_query($sql) //执行sql语句

//这种方法:datetime字段设计成int(10)类型。time()是php提供获取时间戳的函数。

推荐使用方法二,因为这种方式,一.排序速度快,二.方便转换时间区。主流的开源程序都有采用这方式。像discuz phpwind dedecms等等。

private function makeRankSql($order = "") {

if (empty ( $order )) {

return $order

}

switch ($order) {

case "week" :

// 一周前

$begin = date ( "Y-m-d", mktime ( 0, 0, 0, date ( "m" ), date ( "d" ) - 7, date ( "Y" ) ) )

break

case "month" :

// 一个月前

$begin = date ( "Y-m-d", mktime ( 0, 0, 0, date ( "m" ) - 1, date ( "d" ), date ( "Y" ) ) )

break

default :

$begin = date ( "Y-m-d" )

break

}

$end = date ( "Y-m-d" )

return " and " . $this->daysAsSql ( $begin, $end, "DownloadLog.add_time" )

}

private function daysAsSql($begin, $end, $fieldName, $userOffset = null) {

App::uses ( "CakeTime", "Utility" )

$begin = CakeTime::fromString ( $begin, $userOffset )

$end = CakeTime::fromString ( $end, $userOffset )

$begin = date ( 'Y-m-d', $begin ) . ' 00:00:00'

$end = date ( 'Y-m-d', $end ) . ' 23:59:59'

$begin = strtotime ( $begin )

$end = strtotime ( $end )

return " ($fieldName >= '$begin') AND ($fieldName <= '$end') "

}

makeRankSql ( “week”)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7993521.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存