повторяющееся действие: время начала и последующее соглашение о форматировании частоты - PullRequest
0 голосов
/ 25 июня 2018

Я создаю сервис, в котором пользователи смогут зарегистрировать план платежей, который запускается в любой день и повторяется с любой частотой. Ради обобщения я считаю, что это повторяющееся действие с начальным временем.

Поскольку дата и частота определяются третьими сторонами, я хочу определить формат для строки, которая описывает как время начала, так и частоту хранения в базе данных таким образом, чтобы обеспечить максимальную совместимость со сторонами и функции интерпретации, однако прост и лаконичен в своем выражении.

Поскольку детализация должна быть только на ежедневной основе, я думаю о следующем формате:

YYYY / MM / DD% F

с конкретным примером:

2018/01/01% 1M, что означает первоначальный платеж первого января 2018 года с регулярным платежом каждые 1 месяц.

Существуют ли какие-либо соглашения для этого, стандарты ИСО, лучшие практики и т. Д.? И вы предвидите какие-либо предостережения в моем предложенном решении? Например, должен ли формат включать информацию о часовых поясах? Или я должен включить время суток для обеспечения совместимости?

1 Ответ

0 голосов
/ 01 июля 2018

Да, ISO 8601 определяет стандартные форматы для дат и периодов. Но не для того, чтобы объединить оба в план оплаты, по крайней мере, я не думаю.

Дата ISO выглядит как 2018-09-30 или 20180930. Наиболее часто используется форма с дефисами, поэтому я бы порекомендовал ее как для удобства чтения, так и для совместимости.

Период ISO выглядит немного более необычно. P1M означает период в один месяц. Вы можете иметь P1Y (один год), * ​​1009 * (3 месяца), P2W (2 недели) и все, о чем вы могли мечтать. В связанной статье Википедии упоминается «Например,« P3Y6M4DT12H30M5S »представляет продолжительность« три года, шесть месяцев, четыре дня, двенадцать часов, тридцать минут и пять секунд ».»

ISO 8601 также имеет форматы для даты-времени, даты с временем-днем и без смещения от UTC. Нужно ли вам что-то из этого, я не могу судить по предоставленной вами информации. Опция есть, если вы обнаружите, что это необходимо.

Ссылка: ISO 8601 в Википедии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...