我正在尝试创建一个脚本,如果今天的日期是在1月16日之前,则会打印当前年份,但如果今天的日期大于或等于1月16日,则会打印下一年。
我是编码JavaScript的新手,所以也许我只是错过了一些愚蠢的东西。任何人都可以通过查看此代码帮助我告诉我我做错了什么?
<script type="text/javascript">
var today = new Date();
var mm = today.getMonth()+1; //January is 0!
var dd = today.getday();
if (mm < 10) {
mm = '0'+mm
}
var today = new Date("mm/dd")
var other = new Date("01/16")
if (today < other){
var printDate = theDate.getFullYear();
}
else if (today >= other){
var printDate = theDate.getFullYear()+1;
}
</script>
然后在HTML中:
<strong>16 January</strong> <script>document.write(printDate);</script>
现在的输出是“未定义的”。任何想法将不胜感激!
答案 0 :(得分:1)
var today = new Date("mm/dd") // Invalid Date
var other = new Date("01/16") // Tue Jan 16 2001 00:00:00 GMT-0800 (PST)
这应该让你开始正确的过程 - 你需要比较每个日历项目(第一个月,然后是一天)来确定你在寻找什么
您需要的所有变量:
var Today_day = (integer)
var Today_month = (integer)
var Compare_day = (integer) 16 // or 15? not sure about base 0 for a day
var Compare_month = (integer) 0
您知道如何获得Today_day
和Today_month
- 所以您应该拥有所需的一切
答案 1 :(得分:1)
简化条件是:如果月份不是1月(不是0),或者日期是15号之后,那么明年就是:
var today = new Date, year = today.getFullYear();
if (today.getMonth() || today.getDate() > 15) year++;
console.log( year );
&#13;
或者在一行上缩短一点:
var date = new Date, year = date.getFullYear() + (date.getMonth() || date.getDate() > 15)
console.log( year );
&#13;