我正在做一个项目,我需要管理许多操作。每个操作都有一个结束日期,并且由一定数量的任务组成。
如果之前没有完成任务,我想显示提醒(屏幕上显示的文本[end date]
) - X days
。
所有数据都存储在MySQL数据库中,我使用PHP和HTML5。
- 哪种数据类型(是)最适合使用日期和日期(执行计算)?
- 我可以
Date()
轻松地使用和减去天数吗?
我没有具体的技术问题,但我认为分享最好的方法是一件好事,对吧?
我很想知道进行和接受任何提案的最佳方式是什么!
我正在做一个项目,我需要管理许多操作。每个操作都有一个结束日期,并且由一定数量的任务组成。
如果之前没有完成任务,我想显示提醒(屏幕上显示的文本[end date]
) - X days
。
所有数据都存储在MySQL数据库中,我使用PHP和HTML5。
Date()
轻松地使用和减去天数吗?我没有具体的技术问题,但我认为分享最好的方法是一件好事,对吧?
我很想知道进行和接受任何提案的最佳方式是什么!
我建议将您的日期存储在 mysql 的字段时间戳中,因为您可以使用默认值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 将被自动设置和更新...
您可以在数据库中将日期存储为DATETIME。
然后在 PHP 中使用strtotime()和date()函数将其转换为可管理的数据
最好使用的数据类型是DateTime类。
为了使用 DateTime 类执行减法,您需要使用DateInterval类。
您将需要一些时间来轻松使用这两个类,但它会使格式化或日期操作更容易事后诸葛亮。