Php MySQL日期/时间计算
我的mysql表中有一个Php MySQL日期/时间计算,php,mysql,datetime,Php,Mysql,Datetime,我的mysql表中有一个date和time列,分别名为start\u date和start\u time。我希望我的用户能够在开始时间前X小时,至少1小时,最多24小时,为自己设置提醒 我将运行CRON脚本来发送这些提醒。现在我有: SELECT * FROM auctions WHERE start_date=CURDATE() AND status='0' 获取所有今天开始但尚未开始的拍卖。我的问题是,我如何判断现在的时间是否是X开始时间之前的小时,以便我可以向他们发送提醒(如果是) 有什
date
和time
列,分别名为start\u date
和start\u time
。我希望我的用户能够在开始时间
前X小时,至少1小时,最多24小时,为自己设置提醒
我将运行CRON脚本来发送这些提醒。现在我有:
SELECT * FROM auctions WHERE start_date=CURDATE() AND status='0'
获取所有今天开始但尚未开始的拍卖。我的问题是,我如何判断现在的时间是否是X
开始时间之前的小时,以便我可以向他们发送提醒(如果是)
有什么建议吗?类似这样的建议:
选择col1、col2、col3
根据记录
其中(records.startDate介于NOW()和ADDDATE之间(NOW(),间隔9小时))
和(records.status='0');
类似这样的内容:
选择col1、col2、col3
根据记录
其中(records.startDate介于NOW()和ADDDATE之间(NOW(),间隔9小时))
和(records.status='0');
为什么不能使用简单的时间戳字段,而不是一个用于日期,一个用于时间。这样你就可以找到所有在未来5小时内开始的项目(比如说),方法是
select*从开始时间介于now()和now()之间+间隔为“5小时”的拍卖中选择;
注意:数据库之间的间隔语法略有不同,这是postgresql的语法,因此您可能需要对mysql的语法稍作更改。是否有一些原因可以解释为什么不能使用简单的时间戳字段,而不是一个日期字段和一个时间字段。这样你就可以找到所有在未来5小时内开始的项目(比如说),方法是
select*从开始时间介于now()和now()之间+间隔为“5小时”的拍卖中选择;
注意:数据库之间的间隔语法略有不同,这是postgresql的语法,因此您可能需要对mysql的语法稍作更改。您可以使用unixtime来节省时间吗
因为PHP有一个很棒的函数叫做
你可以这样说。strotime(“+20小时”),并从现在起获得20小时的unixtime
那么这只是哪个字段比另一个字段大的问题,如果是这样,请发送通知。您能使用unixtime节省时间吗
因为PHP有一个很棒的函数叫做
你可以这样说。strotime(“+20小时”),并从现在起获得20小时的unixtime
那么这只是哪个字段比另一个字段大的问题,如果是这样,请发送通知。实际上,在发送所有答案及其工作之前,我是这样做的。因为我已经到了最后期限,所以我不能回去改变它:)
$sql=“选择小时(ADDTIME(CURTIME(),“$HOUR”)作为提醒小时,选择小时(CURTIME())作为curHour”;
$result=$this->db->query($sql);
提取($result->getAllSingle());
如果($h在所有答案发送之前,我实际上是这样做的,并且它起作用了。因为我在截止日期前,我不能回去更改它:)
$sql=“选择小时(ADDTIME(CURTIME(),“$HOUR”)作为提醒小时,选择小时(CURTIME())作为curHour”;
$result=$this->db->query($sql);
提取($result->getAllSingle());
如果(为什么你会认为他在运行PHP?首先,他将使用cronjob,这是一个表明它可能不是PHP的迹象。其次,为什么你需要使用strtotime以秒计算20小时?这是基本数学…为什么cronjob表明它不是PHP?为什么你会认为他在运行PHP?首先,他会如果使用cronjob,这表明它可能不是PHP。其次,为什么需要使用strotime以秒为单位计算20小时?这是基本的数学……为什么cronjob表明它不是PHP?