0

Consider the following code of HTML & JavaScript

<!DOCTYPE html>
<html>
<body>
    <script>
        var str = "20990229";
        var showDate = new Date();
        showDate.setFullYear(str.substring(0, 4))
        showDate.setMonth(parseInt(str.substring(4, 6), 10) - 1)
        showDate.setDate(str.substring(6, 8))
        document.write(showDate)
    </script>
</body>
</html>

Output:

Fri Mar 01 2099 16:02:52 GMT+0530 (India Standard Time)

The output is not the correct one, where I am going wrong is not known.

Could anyone tell me where I am going wrong?

4

1 回答 1

2

输出与应有的完全一样:

var str = "20990229";
var showDate = new Date();

showDate.setFullYear(str.substring(0, 4)); // Set year to 2099
showDate.setMonth(parseInt(str.substring(4, 6), 10) - 1); // Set month to 1
showDate.setDate(str.substring(6, 8)); // Set date to 29

那将是 2099 年 2 月 29 日。(请注意,月份从 0 开始索引)。

由于 2099 年不是闰年,因此没有 2 月 29 日,日期对应于 3 月 1 日。

如果您将年份更改为闰年(例如 2096 年),那么输出将与您预期的一样。这是一个例子

于 2013-04-18T10:42:37.197 回答