首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP比较表中的日期与当前日期

问PHP比较表中的日期与当前日期
EN

Stack Overflow用户
提问于 2014-02-24 10:33:13
回答 1查看 289关注 0票数 0

我正在尝试将存储的日期与当前日期进行比较,并相应地发回数据。我的PHP不是很流利,所以这就是我目前所掌握的

代码语言:javascript
复制
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,对吗?有人能帮我弄清楚为什么这个问题不起作用吗?如果这看起来像是一个简单的问题,很抱歉。

先谢谢你,

泰勒

EN

回答 1

Stack Overflow用户

发布于 2014-02-24 10:41:06

这不是一种有效的做事方式。如果需要根据日期挑选物品,请直接在MySQL查询中进行。PHP过滤总是比MySQL慢。尤其是在PHP级别进行过滤时,您必须通过网络传递额外的数据。

所以你可以这样做:

代码语言:javascript
复制
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类型,而不是仅在项目中有意义的代理字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21977921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档