изменить строку с новой даты на дату

Чтобы быть более общим

void accept(Map<String, ? extends List<?>> multiMap)
1
задан kalpeshR 17 January 2019 в 11:57
поделиться

3 ответа

var str = 'new Date(0,0,0,11,13,16)';        
var str1 = str.match(/\(.*\)/g)[0];        
str1 = str1.replace('(', '');        
str1 = str1.replace(')', '');        
var dateArr = str1.split(',');        
var updatedDate = new 
Date(dateArr[0],dateArr[1],dateArr[2],dateArr[3],dateArr[4],dateArr[5]);        
console.log(updatedDate);
0
ответ дан Mudassir 17 January 2019 в 11:57
поделиться

Используйте regex для решения этой проблемы путем сопоставления только чисел. match вернет массив чисел, поэтому используйте оператор распространения , чтобы установить для всех параметров значение Date.

const res = new Date(...'new Date(0,0,0,11,13,16)'.match(/[0-9]+/g));

console.log(res);

0
ответ дан kemicofa 17 January 2019 в 11:57
поделиться

Теоретически для этого можно использовать функцию eval.

Однако, в зависимости от использования, это создает некоторый риск для безопасности. Узнайте больше об этом здесь

Если это возможно, я бы предложил вам использовать другую форму строки даты, например, "yyyy-mm-dd" (2019-02-17) и проанализируйте его для объекта даты, используя new Date(dateString) constructor (new Date('2019-01-17')).

0
ответ дан Linschlager 17 January 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: