我正在创建一个应用程序,用于存储用户的详细信息。其中一个字段是创建的时间和用户希望其帐户处于活动状态的天数。
我正在使用date('c')
将时间存储在created
表字段中。现在,如果用户选择他希望自己的帐户仅在一天内处于有效状态,那么我该如何将其中一天添加到当前date('c')
并将其存储到我的下一个表格字段valid_till
中。
稍后我计划检查当前date('c')
是否在created
和valid_tll
字段之间,然后用户帐户处于有效状态,否则帐户将被删除。
我想使用sql触发器来删除帐户。
答案 0 :(得分:2)
您可以使用PHP的strtotime():
$valid_till = date('c', strtotime('+1 day'));
您可以在PHP手册的Supported Date and Time Formats部分中阅读有关可能格式的更多信息。
答案 1 :(得分:1)
为什么不使用SQL,取决于您使用的引擎,您可以使用类似create = NOW(),到期NOW()+ interval number_of_days,sql引擎为您处理日期,您不需要去创建PHP时间和使用它们的麻烦..
答案 2 :(得分:1)
这是一个基于SQL的解决方案。您可以将其转换为更新或插入。
SELECT
`created`,
CONCAT(
DATE_FORMAT(
DATE_ADD(SUBSTRING(`created`,1,10), INTERVAL 1 DAY), '%Y-%m-%d'
),
RIGHT(`created`,15)
) AS 'valid_till'
FROM `some_table`
但我建议使用SQL UTC_TIMESTAMP()
而不是PHP日期函数和一行TIMESTAMP
数据类型而不是(VAR)CHAR
,以便在SQL端更容易计算