使用 javascript 格式化和计算日期
Formatting and Calculating dates with javascript
我是 javascript 的新手,我正在尝试生成一个日期:
A.) 格式化 (mm/dd/yyyy)
B.)显示为比实际日期晚三个月
我拼接了一些我能找到的东西,似乎可以 return 正确的日期,但我担心它会在今年晚些时候坏掉。有没有更好的方法来完成我想做的事情?脚本如下,在此先感谢您的帮助。
<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>
您无需担心处理一年中的最后三个月。将三个月添加到导致它 'overflow' 的日期会将其正确设置为明年(例如,将三个月添加到 2015 年 11 月将产生 2016 年 2 月的日期)。
var dt = new Date();
dt.setMonth(dt.getMonth() + 3);
document.write((dt.getMonth() + 1) + "-" + dt.getDate() + "-" + dt.getFullYear();
就其价值而言,您的代码看起来是正确的。只是不必要的复杂。
日期对象的方法不仅可以设置月、日和年,还可以获取。
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
,则不得在 if
语句中使用 var dt
。这是一个错误。
要打印今天的日期,您应该连接日期值:
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();
我是 javascript 的新手,我正在尝试生成一个日期:
A.) 格式化 (mm/dd/yyyy)
B.)显示为比实际日期晚三个月
我拼接了一些我能找到的东西,似乎可以 return 正确的日期,但我担心它会在今年晚些时候坏掉。有没有更好的方法来完成我想做的事情?脚本如下,在此先感谢您的帮助。
<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>
您无需担心处理一年中的最后三个月。将三个月添加到导致它 'overflow' 的日期会将其正确设置为明年(例如,将三个月添加到 2015 年 11 月将产生 2016 年 2 月的日期)。
var dt = new Date();
dt.setMonth(dt.getMonth() + 3);
document.write((dt.getMonth() + 1) + "-" + dt.getDate() + "-" + dt.getFullYear();
就其价值而言,您的代码看起来是正确的。只是不必要的复杂。
日期对象的方法不仅可以设置月、日和年,还可以获取。
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
,则不得在 if
语句中使用 var dt
。这是一个错误。
要打印今天的日期,您应该连接日期值:
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();