Day js возвращает число вместо относительного слова с `.form` - PullRequest
1 голос
/ 09 июля 2020

Есть плагин в день js (relativeTime), который возвращает удобочитаемую строку вместо числа. Есть ли способ вернуть просто номер?

что-то вроде этого

dayjs('2020-07-1').from(dayjs('2020-07-9')) // -8
dayjs('2020-07-1').from(dayjs('2020-07-1')) // 0
dayjs('2020-07-11').from(dayjs('2020-07-9')) // 2 

Ответы [ 2 ]

3 голосов
/ 09 июля 2020

Рабочий код !!

Использование метода diff() из библиотеки dayjs с 'day' в качестве второго параметра

console.log(dayjs('2020-07-1').diff('2020-07-9', 'day'));     // -8
console.log(dayjs('2020-07-1').diff('2020-07-1', 'day'));     // 0
console.log(dayjs('2020-07-11').diff('2020-07-9', 'day'));    // 2
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.8.29/dayjs.min.js" integrity="sha512-APVsMirhHF2o3YdCSwYonM7egfT589pTqyoy5hIzEbs9sAGJSbEI6ssXUwngHjaq4V/GmmmpgqrcLSvsO+gsJQ==" crossorigin="anonymous"></script>

ПРИМЕЧАНИЕ: 'day' можно заменить на 'd ', что является сокращением

1 голос
/ 09 июля 2020

Без dayjs Я могу предложить простой способ получить желаемый результат, как показано ниже.

function getDayDifference(from, to) {
  let diffInMilliseconds = new Date(from) - new Date(to);
  // divide with (1000*60*60*24) to get difference in days.
  let days = Math.round(diffInMilliseconds / (1000 * 60 * 60 * 24));
  console.log(days);
  return days;
}

getDayDifference('2020-07-1', '2020-07-9'); // -8
getDayDifference('2020-07-1', '2020-07-1'); // 0
getDayDifference('2020-07-11', '2020-07-9'); // 2

Или же вы можете определить свой собственный метод расширения для dayjs с помощью dayjs.prototype.getDayDifference = function(to) {...}. Вы можете проверить это ниже.

dayjs.prototype.getDayDifference = function(to) {
  //86400000 = (1000 * 60 * 60 * 24)
  return Math.round((this.$d - to.$d) / 86400000);
}

console.log(dayjs('2020-07-1').getDayDifference(dayjs('2020-07-9'))); // -8
console.log(dayjs('2020-07-1').getDayDifference(dayjs('2020-07-1'))); // 0
console.log(dayjs('2020-07-11').getDayDifference(dayjs('2020-07-9'))); // 2
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.8.29/dayjs.min.js" integrity="sha512-APVsMirhHF2o3YdCSwYonM7egfT589pTqyoy5hIzEbs9sAGJSbEI6ssXUwngHjaq4V/GmmmpgqrcLSvsO+gsJQ==" crossorigin="anonymous"></script>
...