月/日/年功能问题

时间:2016-10-30 01:08:36

标签: javascript

首先发布在这里。我真的很好奇为什么下面的函数没有返回正确的月/日/年答案,而只是返回10.

如果我从var月中删除+1,它会返回正确的一切,除非它落后一个月。

我开始学习CS并且非常感谢任何帮助。如果我在函数外部运行它,它会返回正确的答案。

function todaydate() {
var today = new Date();
var month = today.getMonth()+1;
var day = today.getDate();
var year = today.getFullYear();
if (month < 10) {
   month = "0" + month
} else {
    return month
}
return console.log(month + "/" + day + "/" + year)
}

希望这个问题有助于更广泛的受众了解功能如何实际运行。

编辑:谢谢大家,这很有道理。我非常感谢你所有迂腐的答案和观点。

2 个答案:

答案 0 :(得分:1)

如果月份> = 10,则返回月份

} else {
    return month
}

否则你返回

return console.log(month + "/" + day + "/" + year)

返回console.log可能不会返回任何内容

当然,你的功能是返回不一致的东西。

但我也建议你使用优秀的时刻

http://momentjs.com/docs/

它可以在一行中做你想做的事:

moment().format("DD/MM/YYYY");

它使处理日期和时间更容易,更一致

答案 1 :(得分:0)

else是不必要的。这样做:

&#13;
&#13;
function todaydate() {
  var today = new Date();
  var month = today.getMonth() + 1;
  var day = today.getDate();
  var year = today.getFullYear();
  if (month < 10) {
    month = "0" + month
  }
  return month + "/" + day + "/" + year;
}

console.log(todaydate());
&#13;
&#13;
&#13;

或者像这样:

&#13;
&#13;
 function todaydate() {
   var today = new Date();
   var month = today.getMonth() + 1;
   var day = today.getDate();
   var year = today.getFullYear();
   if (month < 10) {
     month = "0" + month
   }
   console.log(month + "/" + day + "/" + year);
 }

 todaydate();
&#13;
&#13;
&#13;