Powiedz, mam tablicę miejsc urodzenialistę ludzi, którzy mają urodziny w ciągu 1 tygodnia Get
var bdates = ['1956-12-03', '1990-03-09',...]
włożę każdy dzięki funkcji, która zwróci te daty, które mają urodziny w ciągu 7 dni od dzisiaj (lub od teraz?). Co mam w tej chwili jest tak:
var bdays = _.map(bdates, function(date) {
var birthDate = new Date(date);
var current = new Date();
var diff = current - birthDate; // Difference in milliseconds
var sevenDayDiff = Math.ceil(diff/31557600000) - (diff/31557600000); //1000*60*60*24*365.25
if (sevenDayDiff <= 0.01916495550992)
return date;
else
return false;
});
Wartość ,01995183087435 została ustalona od podejmowania liczbę milisekund w 51 tygodni i podzielenie przez liczbę milisekund w 52 tygodni, a następnie jeden minus, że stosunek ten powinien być " Zmienna sevenDayDiff '.
Moje JSFIDDLE, niestety, nie całkiem to dobrze. Jest w tym wiele rzeczy nie w porządku. Mój sevenDayDiff może być złą wartością. Również istnieje rok przestępny, nawet jeśli dzielę się przez 365.25. Mógłbym po prostu podchodzić do tego w niewłaściwy sposób.
Jest to aplikacja internetowa, więc administrator może wysłać wiadomość e-mail do osób, które mają urodziny w ciągu 7 dni Wszelkie wskazówki i sugestie są mile widziane.
Musiałeś pomylił gdzieś. Po odjęciu dwóch dat przelicz wynik na dni (1000 * 60 * 60 * 24) i sprawdź, czy jest on mniejszy niż 8 (7 dni). – Ibu
Crikey to wydaje się konwergentny sposób robienia tego. Proponuję użyć tej biblioteki http://momentjs.com/docs/#/query/ – dwjohnston
@dwjohnston Świetna propozycja! –