我想制作一种用户帖子的形式。该表格将包含帖子标题、帖子描述和帖子过期时间。将有一个数据库列,我将在其中存储发布过期时间。表格列将是:
id | user_id | post_title | post_description | post_status | post_expire_time
假设用户指定了 4 小时的过期时间。默认情况下,post_status
将为未过期
。 4 小时后,post_status
将转换为expired
。如何在 Laravel 应用程序中执行此操作?
最佳答案
我可以想象两种方法来做到这一点:
方式一:保存帖子的生存时间并记住帖子创建的时间
- 在您的数据库字段
post_expire_hours
中,您保存了帖子被视为未过期
的小时数(或分钟数,取决于您希望允许的最短时间段)
(例如4
作为整数)。 - 在第二个字段
post_created
中,您可以在创建帖子时保存
(例如2016-04-28 12:00
作为时间戳)。
帖子状态不需要作为数据库字段,因为它可以通过以下方式计算:
if (now > post_created + post_expire_hours) {
// expired
} else {
// not-expired
}
通过这种方式,您可以通过查看 post_expire_hours
来确定帖子的存活时间。
方式2:保存帖子过期的确切时间点
- 在数据库字段
post_expire_time
中保存帖子过期的确切时间
(例如2016-04-28 16:00
作为时间戳)。
帖子状态不需要作为数据库字段,因为它是通过以下方式计算的:
if (now > post_expire_time) {
// expired
} else {
// not-expired
}
这样您就无法确定该帖子的存活时间。
关于PHP Laravel 表单接受日/小时输入并设置过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36909766/