1

ボタンのクリックで昨日の日付を表示しようとしていましたが、なぜ日付が「2013-6-0」ではなく「」として表示されるのですか2013-05-31

誰か私が間違っていたことを教えてください

<!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> 
4

4 に答える 4

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();

デモ

于 2013-06-01T17:32:46.220 に答える
1

コードは単純に日数 (1、2、...) を取り、そこから 1 を引きます。その日を前の月に自動的にロールバックすることを期待するのはなぜですか?

指定された日付からミリ秒を差し引くことで、新しい日付を生成できます。これを試して:

var today = new Date();
# subtract milliseconds representing one day from current date
var yesterday = new Date(today - 24*60*60*1000);
于 2013-06-01T17:34:13.523 に答える
0
var today = new Date();
var yesterday = new Date();
yesterday.setDate(today.getDate()-1);

var yesterdayStr = yesterday.getFullYear() + "-" + (yesterday.getMonth()+1) + "-" + yesterday.getDate();
于 2013-06-01T17:38:06.323 に答える
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);
}
于 2015-01-16T23:47:40.377 に答える