Добавление к текущему времени, время введеное пользователем
У продукта должно быть время опубликования его на сайте, тут просто я использую let now = new Date();
. Возникла проблема, продукт должен быть на сайте не мение двух часов и не более пяти дней(определяет это пользователь). Как это реализовать, чтобы пользователь ввел к примеру 1 день и в базе данных когда продукт опубликовали было start_date = 14:00 06:02:2019
, и когда продукт закроется end_data = 14:00 07:02:2019
?
Я подумал чтобы исполоьзовать время unix
, нашел unix-time, но как к дате опубликования добавить дату закрытия товара которую ввел пользователь?
Версия возникла:
a
- текущая версия времени в формате unix
;
b
- будущая версия времени в формате unix
веденная пользователем;
c
- разница b
от a
;
d
- сумма a
и c
;
Получатся что d
будущая дата в флрмате unix
?

Ответы - Добавление к текущему времени, время введеное пользователем / Добавление к текущему времени, время введеное пользователем

06.02.2019 10:46:26
Вам не обязательно использовать unix-time
. Допустим у вас в базе есть start_date
и end_date
типа DateTime
.
Тогда при создании товара берем дату начала:
let start = new Date();
И дату конца (+ 1 день):
let end = start.setDate(start.getDate() + 1)
Заносим данные в бд.
Далее у вас есть скрипт (задача), которая сверяет таблицу товаров на дату окончания, как пример:
let now = new Date();
if (now >= end_date)
удаляем или переносим товар в неактивные.
Это как пример, что бы объяснить посыл.

14:00 06:02:2019
, то есть в базе данных start_date = 14:00 06:02:2019
и активен товар до 15:00 07:02:2019
, то есть в базе данных end_data = 15:00 07:02:2019
. Получается товар активен 1 день и 1 час. Как мне эти 1 день и 1 час вычесть?

let date = start.setDate(start.getDate() + 1)
и let minute= start.setDate(start.getMinute() + 1)
, мне надо эти 1 день и 1 час взять как то из 15:00 07:02:2019
, а в базу данных занести end_data = 15:00 07:02:2019

let startDay = start_date.getDate()
, let endDay = end_date.getDate()
и вычесть let days = endDay - startDay
, так же и с часами.

06.02.2019 12:42:39
Разобрался. Помогла в этом мне библиотека moment.
import moment from 'moment'; // подключаем библиотеку
let a = moment(); // текущее время (2019-02-06T15:41:23.455)
console.log(a);
let b = moment(req.body.end_date); // время введеное пользователем, взято е из тела (2019-02-10T17:27:19.000)
console.log(b);
let c = b.diff(a, 'hours'); // разницв в часач (Разница в 97 часах)
let d = b.diff(a, 'days'); // разница в днях (Разница в 4 дней)
console.log('Разница в ' + c + ' часах');
console.log('Разница в ' + d + ' дней');
console.log(moment().add(c, 'hours').format()) // добавляем к текушему времи, разницу времени(т.е. 2019-02-10T16:41:23+06:00)