2012-04-19 12 views
6

Chcę uzyskać rozróżnienie dni na konkretną datę, więc próbuję wykryć konkretną datę z dzisiejszą datą. ale to nie działa tu jest mój code Jeśli data jest następny miesiąc 27 Jak mogę uzyskać pozostałe dni iśćJak znaleźć różnicę między dwoma datami przy użyciu 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

Możliwy duplikat: http: // stackoverflow. com/questions/542938/how-do-i-get-the-number-of-days-between-dates-in-jquery – billyonecan

Odpowiedz

3

Oto odpowiedź, znalazłem ten z here mój js-skrzypce jest 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

Kod

date1=27/5/2012 

faktycznie oznacza 27 dzieli się przez 5 podzielona przez 2012. Jest to odpowiednik pisania

date1 = 0.0026838966202783303 

date1 będzie numer, a liczba ta nie ma Metoda getDate.

Jeśli zadeklarowana je jako faktyczna data obiektów zamiast

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

byłbyś w stanie wykonać

var diff = date1 - date2; 

To daje różnicę w milisekundach pomiędzy dwiema datami.

Stąd można obliczyć liczbę dni tak:

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

Proszę zrozumieć, co jest dla jQuery.

jQuery jest szybki i zwięzły biblioteka JavaScript, który upraszcza dokument HTML z poruszaniem, magazynowe wydarzenie, animowanie i interakcji AJAX do szybkiego tworzenia stron WWW.

Chcesz użyć podstawowe Javacript lub jako Juan G. Hurtado stwierdza inną bibliotekę jak momentjs.

3

Chyba można go odjąć:

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); 
Powiązane problemy