2013-06-01 2 views
1

Я пытался показать Вчера Дата по щелчку кнопки, но почему его с указанием даты, как «2013-6-0» вместо 2013-05-31JavaScript: отображение Yesterdays даты в JavaScript

Может кто-нибудь сказать мне, что я делаю неправильно

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function displayDate() 
{ 

var d = new Date(); 
var curr_date = d.getDate()-1; 
var curr_month = d.getMonth() + 1; 
var curr_year = d.getFullYear(); 
var yesterday = curr_year + "-" + curr_month + "-" + curr_date ; 

document.write(yesterday); 

} 
</script> 
</head> 
<body> 


<p id="demo">Click Button to Display Yesterday Date</p> 

<button type="button" onclick="displayDate()">Display Date</button> 

</body> 
</html> 
+1

'd.getDate()' 1, и '1 - 1 = 0 ', так что вы, если не 0 ожидать? Вы должны вычесть 1 из всей даты, а не только из числа дней в месяц. –

+0

Почему вы добавляете 1 к месяцу? –

+0

@ExplosionPills хорошо, что было бы правильно, если бы это не было сделано в неподходящее время :-) – Pointy

ответ

4

вы должны обновить, а затем ссылку на дату, с которой вы вычитают 1 день:

var d = new Date(); 

d.setDate(d.getDate() - 1); // <-- add this to make it "yesterday" 

var curr_date = d.getDate(); // <-- don't subtract 1 anymore 
var curr_month = d.getMonth() + 1; 
var curr_year = d.getFullYear(); 

DEMO

+0

Правильно ... и * затем * получите части даты для отображения. – Pointy

+0

Большое спасибо – Kiran

0

Ваш код просто занимает несколько дней (например, 1, 2, ...) и вычитает его из нее. Почему вы ожидаете, что автоматически верните день назад в предыдущий месяц?

Вы можете создавать новые даты, вычитая миллисекунды с определенной даты. Попробуйте это:

var today = new Date(); 
# subtract milliseconds representing one day from current date 
var yesterday = new Date(today - 24*60*60*1000); 
0
var today = new Date(); 
var yesterday = new Date(); 
yesterday.setDate(today.getDate()-1); 

var yesterdayStr = yesterday.getFullYear() + "-" + (yesterday.getMonth()+1) + "-" + yesterday.getDate(); 
0
function displayDate() 
{ 
    var today = new Date(); 
    today.setDate(today.getDate()-1); 
    var yyyy = today.getFullYear().toString(); 
    var mm = (today.getMonth()+1).toString();   
    mm = mm.length==2?mm:"0"+mm; 
    var dd = today.getDate().toString(); 
    dd = dd.length==2?dd:"0"+dd; 
    var yesterday = yyyy+"-"+mm+"-"+dd; 

    document.write(yesterday); 
} 
Смежные вопросы