管理日期和日期的最佳实践
Best practice to manage date and days
我正在做一个项目,我有很多操作要管理。
每个操作都有一个结束日期,并由一定数量的任务组成。
如果任务未在 [end date]
- X days
.[=13 之前完成,我想显示提醒(屏幕上显示的文本) =]
所有数据都存储在MySQL数据库中,我使用PHP和HTML5.
- 哪种数据类型(是)最适合处理日期和星期(到
执行计算)?
- 我可以使用
Date()
并以简单的方式减去天数吗?
我没有具体的技术问题,但我认为分享最好的方法是件好事,对吧?
我很想知道继续进行的最佳方式是什么,并对任何建议持开放态度!
您可以将日期存储为 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 将自动设置和更新...
我正在做一个项目,我有很多操作要管理。 每个操作都有一个结束日期,并由一定数量的任务组成。
如果任务未在 [end date]
- X days
.[=13 之前完成,我想显示提醒(屏幕上显示的文本) =]
所有数据都存储在MySQL数据库中,我使用PHP和HTML5.
- 哪种数据类型(是)最适合处理日期和星期(到 执行计算)?
- 我可以使用
Date()
并以简单的方式减去天数吗?
我没有具体的技术问题,但我认为分享最好的方法是件好事,对吧?
我很想知道继续进行的最佳方式是什么,并对任何建议持开放态度!
您可以将日期存储为 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 将自动设置和更新...