PHP Laravel 表单接受日/小时输入并设置过期时间

标签 php mysql forms laravel

我想制作一种用户帖子的形式。该表格将包含帖子标题、帖子描述和帖子过期时间。将有一个数据库列,我将在其中存储发布过期时间。表格列将是:

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/

相关文章:

php - php中的图像旋转和白色背景

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

mysql - MySQL 中的外键 : ERROR 1005

java - 将 HTML 5 数据属性传递给 Play!表单输入

javascript - 提交时下拉 ="window.open",始终打开新文件而不覆盖它

PHP:str_replace多种情况

php - 从多个表中获取最早的年份

javascript - 使用表单中的变量作为 DOM 选择器

php - Magento 目录规则违反 MySQL 完整性约束错误

php - 如何在多语言json中执行相似搜索?