Вычислить разницу между двумя датами в React Native

#react-native

#react-native

Вопрос:

Мне нужно вычислить разницу между двумя датами в днях

я привожу сегодняшнюю дату: new Date().toJSON().slice(0, 10) = 2019-04-17 и другую дату в той же форме

Ответ №1:

 var msDiff = new Date("June 30, 2035").getTime() - new Date().getTime();    //Future date - current date
var daysTill30June2035 = Math.floor(msDiff / (1000 * 60 * 60 * 24));
console.log(daysTill30June2035); 

Ответ №2:

Вы можете реализовать это самостоятельно, но зачем это вам? Решение для этого уже существует, и кто-то другой позаботился (и все еще заботится) о том, чтобы оно работало так, как должно.

Используйте date-fns.

 import differenceInDays from 'date-fns/difference_in_days';
 

Если вы действительно хотите ударить себя по голове, вы можете получить разницу в миллисекундах, а затем разделить на количество миллисекунд в день. Звучит хорошо для меня, но я не уверен на 100%, работает ли это правильно.

 const differenceInDays = (a, b) => Math.floor(
  (a.getTime() - b.getTime()) / (1000 * 60 * 60 * 24)
)
 

Ответ №3:

Если вы манипулируете многими датами, возможно moment.js , может быть полезна внешняя библиотека, подобная. Существует несколько дополнений, таких как date range one .

После установки вам необходимо создать диапазон

 const start = new Date(2011, 2, 5);
const end   = new Date(2011, 5, 5);
const range = moment.range(start, end);
 

Затем можно было бы получить разницу, выполнив что-то вроде

 range.diff('months'); // 3
range.diff('days');   // 92
range.diff();         // 7945200000
 

Надеюсь, это может быть полезно 🙂

Ответ №4:

 var d1 = new Date("2019/04/17") //firstDate
var d2 = new Date("2011/02/01") //SecondDate
var diff = Math.abs(d1-d2); //in milliseconds
 

Ответ №5:


Используйте differenceInDays, parseISO из «date-fns»


 import DateTimePicker from "@react-native-community/datetimepicker";
import { differenceInDays, parseISO } from "date-fns";

 let day = differenceInDays(
        parseISO(your end date),
        parseISO(yout first Date)
      );
console.log("differenceInDays",differenceInDays)