[英]Dealing with Dates
这是我需要做的:
INSERT INTO the_table
(fields, the_date_field)
VALUES
(?, DATE_ADD(NOW(), INTERVAL 30 DAY))
SELECT
the_date_field < NOW() AS expired
FROM
the_table
确认:
SELECT '2010-01-01' < NOW() AS expired;
+---------+
| expired |
+---------+
| 1 |
+---------+
SELECT '2012-01-01' < NOW() AS expired;
+---------+
| expired |
+---------+
| 0 |
+---------+
对于您的插入:
$thirty_days_from_today = date('Y-m-d H:i:s', time() + 60*60*24*30);
检查到期日期:
if(strtotime($row['expiration_date']) < time()) {
// expired
}
Strtotime 是您在这方面的朋友,既可以确保您通过数据发送的输入对于 PHP 而言是“可理解的”,也可以用于进行数学运算,例如“+10 天”,这将返回从今天起十天后的日期。 你可以在 strtotime 抛出的东西真的很神奇。
在 MySQL 查询或 PHP 与运算符比较中检查日期非常简单——比如 >、< <> 等。
由于您使用的是 PHP,因此您可以使用strtotime()
$date = date( 'Y-m-d', strtotime( '+30 days' ) );
strtotime
可以处理其他增量( +1 days
、 +5 minutes
等)
您还可以使用strtotime
比较从数据库中读取日期的日期。 如果您以全天(无时间戳)格式存储,则需要除以一整天的秒数。
$expdate = strtotime( date( 'Y-m-d', $record[ 'expiration_date' ] ) );
$today = strtotime( date( 'Y-m-d' ) );
$isExpired = round( abs( $expiration - $today ) / ( 24 * 60 * 60 ) ) >= 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.