【问题标题】:PHP- working with date and timePHP-使用日期和时间
【发布时间】:2014-02-17 10:25:40
【问题描述】:

我需要检索这种格式的日期 2014-17-02 00:00:00 ,其中小时分钟和秒只是零,这意味着我想要今天作为午夜之后开始的一天,或者昨天 2014-16-02 23:59:59pm 取决于你如何看待它。

我想检索这种日期时间的原因是我可以有效地比较我在数据库中的'created'字段,让我获得插入'today'的记录..

有什么建议吗?我试过这些:

$this->today = date('Y-m-d H:i:s');
 $this->today = date('Y-m-d H:i:s',strtotime('now'));

但他们似乎做同样的事情(给我日期时间,精度为 hh mm ss),这不是我想要的。

我想执行这个查询

"SELECT users.role as user_role, 
            Count(users.role) AS user_count
            FROM users
            WHERE users.created >= '$this->today' // any record created after yest midnight
            GROUP BY users.role"

【问题讨论】:

  • 'Y-m-d 00:00:00' – 哦?
  • ...或使用 'Y-m-d' 和 DATE(users.created)
  • @CBroe 没有尝试过我觉得很愚蠢。我认为它只是用来暗示返回结果的格式,就像 h:i:s 谢谢!

标签: php date cakephp datetime strtotime


【解决方案1】:
$this->today = date('Y-m-d') . '00:00:00';

会成功的。

【讨论】:

  • 我同意@CBroe 在他的评论中所说的话!两者都有效,但标记为已回答! Ofc串联!怎么没想到,简单又有效!谢谢!
【解决方案2】:

也可以纯粹使用 SQL 来计算 - 少一个时钟来担心。

SQL - Yesterday's date

SELECT ....
WHERE users.created >= NOW() - INTERVAL 1 DAY

【讨论】:

  • +1 指出这一点。虽然它不等同于$this->today = date('Y-m-d') . '00:00:00';$this->today = date('Y-m-d 00:00:00');
【解决方案3】:
 SELECT users.role as user_role, 
 Count(users.role) AS user_count
 FROM users
 WHERE DATE(users.created) >= '$this->today'
 GROUP BY users.role

【讨论】:

    【解决方案4】:
     $this->today = date('Y-m-d H:i:s');
    

    我想用

    替换它
     $this->today = date('Y-m-d', strtotime("-1 days")); // get yesterday date to 
    

    【讨论】:

    • 从逻辑上讲,我认为这对我不起作用,因为我需要获取昨天午夜之后创建的记录,而不是昨天创建的记录。
    • 它给出昨天的日期,在你的查询中得到记录>=昨天的日期,这意味着你得到了今天创建的整个记录​​,我希望你能理解
    • 这也将检索昨天创建的记录。我认为您的意思是使用 '>' n 运算符,而不是 '>=' 。我可以看到它会起作用!
    • 对不起我的犯规我忘了把这个>=改为>
    猜你喜欢
    • 2013-06-16
    • 1970-01-01
    • 2010-11-05
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    相关资源
    最近更新 更多