2016-04-11 24 views
0

Bu bence basit bir tanesi.Javascript Date Object - JSFiddle cinsinden farklı değer

JSFiddle'da (yeni Tarih (1451606399999) aşağıdaki kodu çalıştırdığımda neden 2015-11-04'ü alıyorum, ancak aynı kodu tarayıcı konsolumda çalıştırdığımda, 2015-12-31 (bu da değeri I) bekliyorum.

ben kod istemci üzerinde çalıştığı ve neden tarih bir ay farkından daha fazla hale Zaman Dilimi gibi her iki durumda da herhangi bir zaman dilimi aynı olacaktır sanırdım

?

Confusingly
function test() 
{ 
    var date = new Date(1451606399999); 
    var year = date.getFullYear(); 
    var month = date.getMonth(); 
    var day = date.getDay(); 
    var hours = date.getHours(); 
    var minutes = "0" + date.getMinutes(); 
    var seconds = "0" + date.getSeconds(); 

    var formattedTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); 

    document.getElementById("myDiv").innerHTML = formattedTime; 
} 

JSFiddle with code

+0

Ay sıfır dayanır mantıklı Aralık – Mike

cevap

2

, date.getMonth(), 0 tabanlı, yani 0 Ocak, yani month = date.getMonth()+1 olmalıdır. Aynı zamanda karışık bir şekilde date.getDay() haftanın gününü döndürür (0 Pazar, 1 Pazartesi ... vb). Aradığınız işlevi, date.getDate()

function test(){ 
    var date = new Date(1451606399999); 
    var year = date.getFullYear(); 
    var month = date.getMonth()+1; 
    var day = date.getDate(); 
    var hours = date.getHours(); 
    var minutes = "0" + date.getMinutes(); 
    var seconds = "0" + date.getSeconds(); 

    var formattedTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); 
    console.log(date); 
    document.getElementById("myDiv").innerHTML = formattedTime; 
} 
+0

11 = olduğunu. Tahmin ettiğim tanımları kontrol etmek için daha fazla zaman ayırmalıydım. Cevap için teşekkürler – msteel9999