我是javascript的新手,我正在尝试生成一个日期:
A。)格式化(mm / dd / yyyy)
B。)显示为比实际日期晚三个月。
我拼凑了一些我能找到的东西,似乎可以恢复正确的日期,但我担心它会在今年晚些时候破裂。有没有更好的方法来完成我想要做的事情?脚本在下面,提前感谢您的帮助。
<script type="text/javascript">
var dt = new Date();
var month = dt.getMonth();
var day = dt.getDate();
var year = dt.getFullYear();
if (month == 9) { var dt = new Date();
var month = dt.getMonth()-8;
var day = dt.getDate();
var year = dt.getFullYear();
var next_year = dt.getFullYear()+1;
document.write(month + '-' + day + '-' + next_year)}
else if (month == 10) { var dt = new Date();
var month = dt.getMonth()-8;
var day = dt.getDate();
var year = dt.getFullYear();
var next_year = dt.getFullYear()+1;
document.write(month + '-' + day + '-' + next_year)}
else if (month == 11) { var dt = new Date();
var month = dt.getMonth()-8;
var day = dt.getDate();
var year = dt.getFullYear();
var next_year = dt.getFullYear()+1;
document.write(month + '-' + day + '-' + next_year)}
else { var dt = new Date();
var month = dt.getMonth()+4;
var day = dt.getDate();
var year = dt.getFullYear();
document.write(month + '-' + day + '-' + year);}
</script>
答案 0 :(得分:0)
您无需担心今年最后三个月的问题。将三个月添加到导致其“溢出”的日期将正确地将其设置为明年(例如,到2015年11月增加三个月将在2016年2月生成日期)。
var dt = new Date();
dt.setMonth(dt.getMonth() + 3);
document.write((dt.getMonth() + 1) + "-" + dt.getDate() + "-" + dt.getFullYear();
对于它的价值,你的代码看起来是正确的。只是不必要地复杂。
答案 1 :(得分:0)
日期对象的方法不仅允许设置月,日和年,还可以设置。
function getMyDate() {
var date = new Date();
date.setMonth(date.getMonth() + 3);
return (date.getMonth() + 1) + '-' + date.getDate() + '-' + date.getFullYear();
}
document.write(getMyDate());
P.S。 var
的范围是函数,而不是块{}
。因此,如果您在范围顶部声明var dt
,则不得在var dt
语句中使用if
。这是一个错误。
答案 2 :(得分:0)
要打印今天的日期,您应该连接日期值:
var d = new Date();
var str = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
如果您想在日期中添加月份:
var d = new Date();
var threeMonthsFromToday = new Date(new Date(d).setMonth(d.getMonth()+3));
var str = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();