我正在尝试将存储的日期与当前日期进行比较,并相应地发回数据。我的PHP不是很流利,所以这就是我目前所掌握的
while ($row = mysql_fetch_array($result)) {
// temp user array
$event_date_str = $row["date"];
$todays_date_str = date("m-j-Y");
$today = strtotime($todays_date_str);
$event_date = strtotime($event_date_str);
if($event_date > $today){
$event = array();
$event["pid"] = $row["pid"];
$event["name"] = $row["name"];
$event["longitude"] = $row["longitude"];
$event["latitude"] = $row["latitude"];
$event["pavement"] = $row["pavement"];
$event["traffic"] = $row["traffic"];
$event["environment"] = $row["environment"];
$event["image_b64"] = $row["image_b64"];
$event["created_at"] = $row["created_at"];
$event["date"] = $row["date"];
$event["time"] = $row["time"];
$event["type"] = $row["type"];
// push single product into final response array
array_push($response["events"], $event);
}else{
//delete it here
}有了这些代码,我什么也得不到。我有两个项目存储在数据库中,一个日期为"2-28-2014“,另一个日期为"2-14-2014",所以我应该拿回一个,而不是另一个,但我都没有拿到。我知道保存的日期没有前导零,所以我应该使用j,对吗?有人能帮我弄清楚为什么这个问题不起作用吗?如果这看起来像是一个简单的问题,很抱歉。
先谢谢你,
泰勒
发布于 2014-02-24 10:41:06
这不是一种有效的做事方式。如果需要根据日期挑选物品,请直接在MySQL查询中进行。PHP过滤总是比MySQL慢。尤其是在PHP级别进行过滤时,您必须通过网络传递额外的数据。
所以你可以这样做:
SELECT * FROM `table` WHERE `record_expires_datetime_gmt` > UTC_TIMESTAMP();
SELECT * FROM `table` WHERE `record_expires_date_gmt` > DATE(UTC_TIMESTAMP());
// use NOW() for local time, UTC_TIMESTAMP() is GMT/UTC然后对记录执行您需要做的操作。永远不要使用SELECT *,然后在PHP中过滤记录。
MySQL中有一套完整的DATETIME functions,允许您在MySQL服务器端过滤数据。
PS:显然,要让这种方法起作用,您的MySQL表必须经过适当的设计。日期(日期和时间)字段必须是DATE或DATETIME类型,而不是仅在项目中有意义的代理字符串。
https://stackoverflow.com/questions/21977921
复制相似问题