#javascript #reactjs #typescript
#javascript #reactjs #машинопись
Вопрос:
Unix передается в аргумент d .
Я хочу использовать много, чтобы получить только числа, но я получаю сообщение об ошибке.
сообщение об ошибке
TypeError: Cannot read property 'match' of undefined
const date = (d) => {
const dayjs = require('dayjs');
const relativeTime = require('dayjs/plugin/relativeTime');
dayjs.extend(relativeTime);
const now = Date.now();
const day = dayjs(now - d).fromNow();
console.log(day.result.match(/[0-9]*/g));
};
Ответ №1:
Вы не можете прочитать свойство ‘match’ undefined, потому что результат не определен. Взглянув на day.js документация, похоже, dayjs().fromNow() возвращает строковый вывод непосредственно в вашем day
const. Будьте осторожны, так как число, которое он возвращает, не только в днях, разбивка может составлять часы / месяцы / годы в зависимости от общего количества дней, как вы можете видеть, если таблица диапазонов при прокрутке вниз.
const date = (d) => {
const dayjs = require('dayjs');
const relativeTime = require('dayjs/plugin/relativeTime');
dayjs.extend(relativeTime);
const now = Date.now();
const day = dayjs(now - d).fromNow(true); //pass in true to remove the suffix 'ago'
console.log(day.split(' ')[0]);
};
Вместо сопоставления регулярных выражений все, что нам нужно сделать, это разделить строку пробелами и взять первый элемент, который является числом 2 days ago
-> 2