#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)