2012-04-19 12 views
6

Voglio ottenere giorni di scrematura per andare data particolare, quindi sto cercando di rilevare una data particolare con la data odierna. ma questo non è il mio lavoro qui code Se la data è il mese prossimo 27 giorni come posso ottenere rimanenti per andareCome faccio a trovare la differenza tra due date utilizzando Javascript

var date2=new Date(); 
    var date1=27/5/2012; 
    var diff = date1.getDate()-date2.getDate(); 
    var date_reaming = diff.getDate(); 
    document.write(date_reaming + 'days to go'); 
+0

Possibile duplicato di: http: // StackOverflow. com/domande/542.938/how-do-i-get-il-numero-di-giorni date-in-jquery-tra-due – billyonecan

risposta

3

Ecco la risposta, ho trovato questo da here mia js-violino è here

var d = new Date(); 
var curr_date = d.getDate(); 
var curr_month = d.getMonth();/* Returns the month (from 0-11) */ 
var curr_month_plus= curr_month+1; /* because if the month is 4 it will show output 3 so we have to add +1 with month*/ 
var curr_year = d.getFullYear(); 
function dstrToUTC(ds) { 
    var dsarr = ds.split("/"); 
    var mm = parseInt(dsarr[0],10); 
    var dd = parseInt(dsarr[1],10); 
    var yy = parseInt(dsarr[2],10); 
    return Date.UTC(yy,mm-1,dd,0,0,0); } 
    function datediff(ds1,ds2) { 
    var d1 = dstrToUTC(ds1); 
    var d2 = dstrToUTC(ds2); 
    var oneday = 86400000; 
    return (d2-d1)/oneday; } 
    var a =curr_month_plus+ '/' + curr_date + '/' + curr_year; 
    var b; 
    b = "5/26/2012"; 
    document.write(+datediff(a,b)+" day(s)<br>"); 
14

Il codice

date1=27/5/2012 

significa in realtà 27 diviso per 5 diviso per il 2012. E 'equivalente a scrivere

date1 = 0.0026838966202783303 

date1 sarà un numero, e questo numero non ha alcuna Metodo getDate.

Se li dichiarati come oggetti data effettiva invece

var date2 = new Date(2012, 3, 19); 
var date1 = new Date(2012, 4, 27); 

Si sarebbe in grado di eseguire

var diff = date1 - date2; 

Questo darebbe la differenza in millisecondi tra le due date.

Da qui, si potrebbe calcolare il numero di giorni in questo modo:

var days = diff/1000/60/60/24; 
8
function getDateDiff(date1, date2, interval) { 
    var second = 1000, 
    minute = second * 60, 
    hour = minute * 60, 
    day = hour * 24, 
    week = day * 7; 
    date1 = new Date(date1).getTime(); 
    date2 = (date2 == 'now') ? new Date().getTime() : new Date(date2).getTime(); 
    var timediff = date2 - date1; 
    if (isNaN(timediff)) return NaN; 
    switch (interval) { 
    case "years": 
     return date2.getFullYear() - date1.getFullYear(); 
    case "months": 
     return ((date2.getFullYear() * 12 + date2.getMonth()) - (date1.getFullYear() * 12 + date1.getMonth())); 
    case "weeks": 
     return Math.floor(timediff/week); 
    case "days": 
     return Math.floor(timediff/day); 
    case "hours": 
     return Math.floor(timediff/hour); 
    case "minutes": 
     return Math.floor(timediff/minute); 
    case "seconds": 
     return Math.floor(timediff/second); 
    default: 
     return undefined; 
    } 
} 

console.log(getDateDiff('19/04/2012', '27/5/2012', 'days')); 
2

Si prega di capire che cosa jQuery è fatto per.

jQuery è una libreria veloce e concisa JavaScript che semplifica documento HTML attraversamento, la gestione evento, animare, e le interazioni Ajax per lo sviluppo web rapida.

si desidera utilizzare base Javacript o come Juan G. Hurtado afferma un'altra libreria come momentjs.

3

Penso che si può sottrarre:

var date2 = new Date(2012, 3, 19); // 1st argument = year, 2nd = month - 1 (because getMonth() return 0-11 not 1-12), 3rd = date 
var date1 = new Date(2012, 4, 27); 
var distance = date1.getTime() - date2.getTime(); 
distance = Math.ceil(distance/1000/60/60/24); // convert milliseconds to days. ceil to round up. 
document.write(distance); 
Problemi correlati