Рассчитать дату и время между клиентом и сервером (Node JS) - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть приложение, которое использует подписки для каждого участника, который присоединяется. У меня есть некоторые проблемы с датами и расчетами, связанными с этим. Например, допустим, член присоединяется 10/102020 в 10:00. Когда пользователь отправляет запрос на сервер для обработки подписки (сервер использует UT C), вычисляемая дата - 2/10/2020 16:00 (потому что я - 6:00 часов от UT C). С этим сценарием все в порядке, потому что дата все та же (независимо от времени). Но если мы повторим этот сценарий, когда пользователь присоединяется, например, 2/10/2020 в 19:00, когда запрос получен и вычислена дата, результатом является 2/11/2020 01:00, и это приводит к ошибке в счете, потому что дата выставления счета неверна (один день после). Каков наилучший способ реализовать это? Я прочитал большую часть этой темы c, но большинство страниц и вопросов связаны с сервером, клиентом, для анализа дат форматирования, отображаемых для пользователя. У меня есть несколько вопросов, связанных с этим процессом.

  1. Должен ли я отправить дату для пользовательского интерфейса в API? Или часовой пояс и исходя из этого рассчитать дату в API? (поскольку на сервере есть UT C)
  2. Момент. js В библиотеке есть способ решить эту проблему или лучше с vanilla Javascript с использованием Date?
  3. Есть ли HTTP? заголовок запроса для обработки времени или даты?

1 Ответ

0 голосов
/ 10 февраля 2020

Это действительно зависит от того, какое поведение вы хотите иметь. Прежде чем пытаться что-то исправить, продумайте и определите точные требования, на которых должна основываться дата выставления счета.

  • Является ли часовой пояс пользователя релевантным? Если это так, вам, вероятно, нужно знать, что такое часовой пояс пользователя. Возможно, вы будете назначать разные даты различным счетам, даже если они используют один и тот же момент времени UT C. Ваш бизнес может запутаться из-за того, что у некоторых клиентов есть даты выставления счетов до или после рабочего дня.
  • Или, возможно, часовой пояс вашей компании более актуален? Многие бизнес работают именно так. Все ваши счета будут выровнены, но некоторые клиенты могут быть смущены тем, почему их дата счета до или после их текущей даты.
  • Или, возможно, некоторые клиенты привязываются к часовым поясам близлежащих офисов, в случае предприятий с офисами по всему миру.

Только вы и ваша компания могут решить это. Возможно, есть и другие варианты, которые я здесь не обдумываю. Это деловое решение, а не техническое.

На ваши три вопроса:

  1. Это зависит от того, что вы решите выше.
  2. Библиотеки - хорошая идея для упрощение вашего кода, но это не жесткое требование. Вы можете использовать Date API, если вы знаете, что делаете, но вам может быть легче работать с библиотеками. Также, Момент находится в режиме сопровождения. Для новых разработок команда Moment рекомендует использовать Luxon вместо Moment. Есть и другие популярные современные библиотеки, включая date-fns и js -Joda .
  3. Есть заголовок date, но это не поможет Вы с этим.
...