Dire che ho una serie di date di nascitaottenere l'elenco delle persone che hanno compleanno entro 1 settimana
var bdates = ['1956-12-03', '1990-03-09',...]
Metterò ciascuno attraverso una funzione che restituirà quelle date che hanno un compleanno entro 7 giorni a partire da oggi (o da adesso?). Quello che ho al momento è questo:
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;
});
Il valore ,01995183087435 stato determinato dal prendere il numero di millisecondi a 51 settimane e dividendo per il numero di millisecondi a 52 settimane, quindi meno uno che rapporto dovrebbe essere il ' variabile sevenDayDiff '.
Il mio JSFIDDLE, sfortunatamente, non ha proprio ragione. Ci sono molte cose che non vanno in questo. Il mio sevenDayDiff potrebbe essere il valore sbagliato. Inoltre c'è anche il problema degli anni bisestili, anche se sto dividendo per 365.25. Potrei semplicemente andare su questo nel modo sbagliato.
Questo sta andando in una web app in modo che un amministratore può sparare via e-mail a coloro che hanno un compleanno entro 7 giorni. Eventuali suggerimenti o suggerimenti sono benvenuti.
Devi aver fatto un errore da qualche parte. Quando sottrai le due date, converti il risultato in giorni, (1000 * 60 * 60 * 24) e verifica se è inferiore a 8 (7 giorni). – Ibu
Crikey questo sembra un modo convulso di fare questo. Suggerisco di utilizzare questa libreria http://momentjs.com/docs/#/query/ – dwjohnston
@dwjohnston Ottimo suggerimento! –