管理日期和日期的最佳实践

Best practice to manage date and days

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

如果任务未在 [end date] - X days.[=13 之前完成,我想显示提醒(屏幕上显示的文本) =]

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

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

我很想知道继续进行的最佳方式是什么,并对任何建议持开放态度!

您可以将日期存储为 DATETIME 在您的数据库中。

然后在 PHP 中使用 strtotime() and the date() 函数将其转换为可管理的数据

最适合使用的数据类型是 DateTime class。

为了使用 DateTime class 执行减法,您需要使用 DateInterval class.

您需要一些时间来轻松使用这两个 classes,但这将使格式化或日期操作变得更容易。

我建议将您的日期存储在 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',
)
*/

有时创建 table 非常有帮助:

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

因此,您的字段 ts 将自动设置和更新...