使用javascript格式化和计算日期

时间:2015-08-17 20:28:56

标签: javascript date calculator

我是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>

3 个答案:

答案 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();