ошибка при попытке добавить время в дату с помощью javascript

#javascript #node.js

#javascript #node.js

Вопрос:

Я получаю данные из БД со временем, подобным 2018-08-15T06:08:55.000Z в этом я хочу минуты и добавляю к ним 5 минут. Я попытался использовать метод getMinutes(), но он выдает ошибку getMinutes() не является функцией.

 console.log('data as ', obj);
 var dt = obj.starttime; 
console.log('time from database' , dt);
console.log('getMinutes():'  ,dt.setMinutes( dt.getMinutes()   05 ));

 data as  { id: 4009,
 mid: 1,cid: 41,wid: 7138,oid: null,status: null,options: null,
 starttime: '2018-08-15T06:08:55.000Z',duration: null,ordertotal: 50,
  counter: null,closetime: null }

 time from database 2018-08-15T06:08:55.000Z

 Uncaught Error
  message: 'dt.getMinutes is not a function',
  

Комментарии:

1. Что это dt ?

2. @hsz извините, dt — это переменная, которую я сейчас отредактировал

Ответ №1:

преобразуйте строку в дату

  var dt = new Date('2018-08-15T06:08:55.000Z');
console.log(dt.getMinutes());  

Ответ №2:

dt — это просто строка, которая вам нужна, чтобы преобразовать ее в объект date

 let dt = '2018-08-15T06:08:55.000Z';

date = new Date(dt);
console.log(date.getMinutes());  

Ответ №3:

Преобразуйте вашу строку в a Date , передав ее конструктору Date.

Затем используйте date.setMinutes(date.getMinutes() 5); , чтобы добавить 5 минут:

 const date = new Date('2018-08-15T06:08:55.000Z');
date.setMinutes(date.getMinutes()   5);

console.log(date);  

Ответ №4:

Возможно, вы получаете время «2018-08-15T06:08:55.000Z» из базы данных в виде строки. преобразуйте его в формат даты и получите из него минуты.

   let dt = "2018-08-15T06:08:55.000Z"
  let myTime = new Date(dt);
  console.log(myTime.getMinutes());
  

Приведенный выше код должен решить вашу проблему.

Ответ №5:

Я полагаю dt.getMinutes() , может быть, не работает, потому что dt не является Timeobject .

Попробуйте следующее:

 dt = '2018-08-15T06:08:55.000Z'
let dt = new Date (dt);

console.log('getMinutes():'  ,dt.setMinutes( dt.getMinutes()   05 ));

  

Ответ №6:

Это зависит от того, как вы инициализировали «dt». Попробуйте это :

 let dt_new = new Date(dt);
let min = dt_new.getMinutes();
  

Вам необходимо инициализировать dt как объект date