dayjs я хочу делать только числа

#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