php sql 日期时间比较
我的 MySQL 表中有一个 last_notified 列,数据类型为 DATETIME
我想只选择 last_notified 超过 n 秒的行,或者比较 php.ini 中数据库中的 last_notified 值。
我尝试过摆弄日期对象。
$d = date('Y-m-d H:i:s'); // current date and time
$dd = date('2011-09-08 10:21:34'); // this is the format used in mysql.
我知道我不能只是比较它们,而且我不知道如何向日期对象添加时间。我见过人们使用类似的东西的例子,
$t = explode(" ",$dd);
date($dd, strtotime('+30 minutes', strtotime($t[1])));
但这不起作用。我只是没有看到它。
I have a last_notified column on my MySQL table, data type DATETIME
I want to either only select the rows where last_notified is more than n seconds old, or compare the last_notified value from the db in php.
I have tried messing around with the date object.
$d = date('Y-m-d H:i:s'); // current date and time
$dd = date('2011-09-08 10:21:34'); // this is the format used in mysql.
I know I cannot just compare them, and i'm unaware of how to add time to the date object. I have seen examples of people using something along the lines of
$t = explode(" ",$dd);
date($dd, strtotime('+30 minutes', strtotime($t[1])));
but that doesn't work . I'm just not seeing it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以像这样使用 sql:
SELECT * FROM your_table WHERE last_notified
DATE_SUB(NOW(), INTERVAL n SECOND)
You can use sql like this:
SELECT * FROM your_table WHERE last_notified < DATE_SUB(NOW(), INTERVAL n SECOND)
看看你的第一个片段和日期掩码,在第一行中
你使用了
m
掩码两次,所以这意味着将有月份而不是分钟。您应该使用
i
掩码来指定分钟Take a look at your first snippet and date mask in first line
you use
m
mask twice, so it means there will be month instead of minutes.you should use
i
mask to specify the minutes