php - 存储当前日期时,应该在 web 应用程序中设置还是在数据库中设置?

标签 php mysql date

假设您正在构建一个类似于留言板的 Web 应用程序,您希望在其中记录提交消息的时间。无需以任何方式进一步处理日期。在应用程序本身中获取日期或在数据库中生成日期之间有什么实际区别吗?是否推荐一种方法优于另一种方法?如果是,为什么?

$msg = "Stuff";

//Generating the date in the application
$currentTime = date("Y-m-d H:i:s");
$st = $mysqli->prepare("insert into messages (msg, date_time) values (?, ?)");
$st->bind_param("ss", $msg, $currentTime);

//--- OR ---

//Generating the date in the database
$st = $mysqli->prepare("insert into messages (msg, date_time) values (?, CURRENT_TIME())");
$st->bind_param("s", $msg);

此外,如果在 date_time 字段中使用默认值 CURRENT_TIMESTAMP 是否可以更好地实现第二个选项,还是没有太大区别?

最佳答案

如果数据库和网络服务器位于同一台服务器上,则无所谓。他们的时间是一样的。

您可以:

  • 将日期时间保存为 UTC+0
  • 使用 PHP 的 time() 保存时间戳

并让应用程序执行时区调整和/或时间戳到日期时间的转换。

关于php - 存储当前日期时,应该在 web 应用程序中设置还是在数据库中设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113642/

相关文章:

ios - swift NSDate AM 和 Pm 格式

scala - 从键盘读取日期直到正确 - 在 scala 中

php - 从当月开始按月从 mysql 表中获取值的总和

javascript - 设置 clickedit 输出的样式

javascript - 通过 ajax 加载内容时 jQuery 的本地时间插件失败

R:您可以为日期时间数据创建自定义层次结构顺序吗?

php - 我想从客户表中获取名字

mysql - 如何在主键上使用where子句?

php - 尝试根据上一个表的选择从 2 个不同的表中获取多个 COUNT(id)

MySql SELECT WHERE 日期大于过去 10 周(从上周日开始)