php - 管理日期和天数的最佳实践

标签 php mysql sql date date-manipulation

我正在开发一个项目,需要管理许多操作。 每个操作都有一个结束日期,并由一定数量的任务组成。

如果在[结束日期] - X 天之前未完成任务,我想显示提醒(屏幕上显示的文本) >.

所有数据都存储在MySQL数据库中,我使用PHPHTML5

  • 哪种数据类型最适合处理日期和日期(至 执行计算)?
  • 我可以使用 Date() 轻松地减去天数吗?

我没有具体的技术问题,但我认为分享最佳的操作方法是一件好事,对吧?

我很想知道继续进行和接受任何提案的最佳方式是什么!

最佳答案

我建议将您的日期存储在 mysql 字段 timestamp 中,因为您可以使用默认值 CURRENT_TIMESTAMP - 这非常有帮助, 我认为你不应该担心它,有很多功能::

mysql:

select now();
+---------------------+
| now()               |
+---------------------+
| 2015-04-08 12:13:18 |
+---------------------+
select now() - interval 1 day;
+------------------------+
| now() - interval 1 day |
+------------------------+
| 2015-04-07 12:13:29    |
+------------------------+
select now() - interval 7 day;
+------------------------+
| now() - interval 7 day |
+------------------------+
| 2015-04-01 12:13:38    |
+------------------------+
select now() - interval 1 month;
+--------------------------+
| now() - interval 1 month |
+--------------------------+
| 2015-03-08 12:13:58      |
+--------------------------+

php:

<?php
var_export([
    date('Y-m-d H:i:s', strtotime('now')),
    date('Y-m-d H:i:s', strtotime('- 1 day')),
    date('Y-m-d H:i:s', strtotime('- 7 day')),
    date('Y-m-d H:i:s', strtotime('- 1 month')),
]);
/*
Result:

array (
  0 => '2015-04-08 15:15:42',
  1 => '2015-04-07 15:15:42',
  2 => '2015-04-01 15:15:42',
  3 => '2015-03-08 15:15:42',
)
*/

有时创建表格非常有帮助,例如:

CREATE TABLE t1 (
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

结果您的字段 ts 将自动设置和更新...

关于php - 管理日期和天数的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514150/

相关文章:

c# - 在 C# 中捕获 SQL 异常的最佳实践

php - 使用 PHP unserialize() 多选标签中的多个选择值

mysql - 如何使用vb.net和adodb连接在mysql数据库中插入图像

mysql - allowMultiQueries 究竟做了什么?

php - 多个值的哈希方法?

sql - T-SQL 每小时获取行数,无论日期如何

sql - postgresql 在可序列化事务上永远挂起

php - 使用 mysql 将行连接在一起

PHP/MYSQL 比较日期

php - 在Kubernetes中实现前端和后端时无法连接到数据库