考虑以下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>
输出:
2099年3月1日星期五,格林尼治标准时间+0530(印度标准时间)
输出不正确,我不知道哪里出错了。
谁能告诉我我要去哪里错了?
最佳答案
输出与应有的完全一样:
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年不是a年,因此没有2月29日,该日期对应于3月1日。
如果将年份更改为is年(例如2096),则输出将如您所愿。这是an example。