首先,您需要了解 、 和 之间date()
的time()
区别mktime()
。
date()
仅用于显示目的。切勿将其用于数学运算。
time()
返回当前timestamp
(int
表示当前时间和日期)。
mktime()
,没有任何参数,与 相同time()
。使用参数,它可以让你得到timestamp
一个设定的时间。参数的顺序是:时、分、秒、月、日、年。
现在,您的问题:
问题 1
要进行时间操作,您可以执行以下操作:
$today = mktime(0,0,0); //Today, time neutral
$otherDate = mktime(0, 0, 0, 6, 26, 2008); //2008-06-26, time neutral
$secondsBetweenDates = $today - $otherDate;
问题2
您最好直接在 SQL 中执行类似的操作。以下是您可以为在 PHP 中运行的两个最常见的数据库服务器执行此操作的方法。我假设DateSubscribed
是有效的日期数据类型。
--- MySQL
DELETE FROM `subscribers`
WHERE NOW() < DATE_ADD(`DateSubscribed`, INTERVAL 1 WEEKS);
--- PostgreSQL
DELETE FROM "subscribers"
WHERE CURRENT_TIMESTAMP < ("DateSubscribed" + interval '1 week');
问题 3
这取决于您的 DBMS。以下是与 MySQL 和 PostgreSQL 的日期/时间函数相关的文档页面