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

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

06.02.2019 07:51:04 Просмотров 25 Источник

У продукта должно быть время опубликования его на сайте, тут просто я использую 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?

У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/941325/%d0%94%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b5%d0%bc%d1%83-%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b8-%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%be%d0%b5-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b5%d0%bc#comment1565263_941325
Исправьте опечатки и дайте вопросу нормальное название отражающее суть проблемы.

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

Является ответом!
funforlifefix

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)
   удаляем или переносим товар в неактивные.

Это как пример, что бы объяснить посыл.

https://ru.stackoverflow.com/questions/941325/%d0%94%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b5%d0%bc%d1%83-%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b8-%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%be%d0%b5-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b5%d0%bc/941388#comment1565423_941388
Суть ясна. не ясно одно мне. Товар выставлен допустем 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 час вычесть?
https://ru.stackoverflow.com/questions/941325/%d0%94%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b5%d0%bc%d1%83-%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b8-%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%be%d0%b5-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b5%d0%bc/941388#comment1565434_941388
То есть 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
https://ru.stackoverflow.com/questions/941325/%d0%94%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b5%d0%bc%d1%83-%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%b8-%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%be%d0%b5-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d0%b5%d0%bc/941388#comment1565473_941388
Если вам нужно именно узнать кол-во дней, минут, то можно взять из даты начала и конца дни - let startDay = start_date.getDate(), let endDay = end_date.getDate() и вычесть let days = endDay - startDay, так же и с часами.
MegaRoks

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)
Закрыть X