Лучшая практика для управления датой и днями

Я работаю над проектом, в котором мне нужно управлять многими операциями.
Каждая операция имеет дату окончания и состоит из определенного количества задач.

Я хочу отображать напоминания (текст, отображаемый на экране) если задание не выполнено раньше [end date]X days,

Все данные хранятся в MySQL база данных, и я работаю с PHP а также HTML5.

  • Какой тип данных (являются) лучше всего работать с датой и днями (в
    выполнять расчеты
    )?
  • Могу ли я работать с Date() и вычитать дни простым способом?

У меня нет конкретного технического вопроса, но я думаю, что делиться лучшим способом — это хорошо, правда?

Мне любопытно узнать, как лучше поступить и открыться для любого предложения!

2

Решение

Я рекомендую хранить вашу дату в 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 будет автоматически установлено и обновлено …

2

Другие решения

Вы можете хранить даты как DATETIME в вашей базе данных.

Затем в PHP преобразовать его в управляемые данные, используя StrToTime () и Дата() функции

1

Лучший тип данных для работы — это DateTime учебный класс.

Для выполнения вычитаний с использованием класса DateTime вам необходимо использовать DateInterval учебный класс.

Вам понадобится некоторое время, чтобы освоиться с этими двумя классами, но это облегчит вам процесс форматирования или обработки даты.

0
По вопросам рекламы [email protected]