我有一个约会让我们说" 17-2-1978"我检查过它是否过去了。在检查时,如果是在过去,我想只将年份改为2018年。如何做到这一点?
以下代码:
function startCountDown(){
var testing = document.getElementById("events-div").lastChild.textContent;
alert(testing);
var selectedDate = new Date(testing);
var now = new Date();
if (selectedDate < now) {
var d = new Date();
var n = d.getFullYear()+1;
selectedDate.setDate(selectedDate + n);
alert(selectedDate);
}
}
答案 0 :(得分:2)
您可以使用setFullYear
方法。例如:
var d = new Date();
d.setFullYear(2018);
要以您希望的格式显示,您可以使用getDate
,getMonth
和getYear
var formatted = [d.getDate(), d.getMonth() + 1, d.getYear()].join('-');
月份从零开始,因此您需要为其添加1。
答案 1 :(得分:1)
首先需要正确解析日期字符串以构造日期对象:
var from = testing.split("-");
var d = new Date(from[2], from[1] - 1, from[0]);
var today = new Date();
if (d < today) {
d.setFullYear(2018);
} else {
//date is in future so no change
}
请参阅以下示例:
var testing="17-2-1978";
var from = testing.split("-");
var d = new Date(from[2], from[1] - 1, from[0]);
var today = new Date();
if (d < today) {
d.setFullYear(2018);
} else {
//date is in future so no change
}
document.getElementById("date").innerHTML=d;
&#13;
<p id="date"></p>
&#13;