Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于月/日更改显示年份的JavaScript_Javascript - Fatal编程技术网

基于月/日更改显示年份的JavaScript

基于月/日更改显示年份的JavaScript,javascript,Javascript,我试图创建一个脚本,如果今天的日期在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

我试图创建一个脚本,如果今天的日期在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>

var today=新日期();
var mm=today.getMonth()+1//一月是零!
var dd=today.getday();
如果(毫米<10){
毫米='0'+毫米
} 
var today=新日期(“mm/dd”)
var其他=新日期(“01/16”)
如果(今天<其他){
var printDate=theDate.getFullYear();
}
如果发生其他情况(今天>=其他){
var printDate=theDate.getFullYear()+1;
}
然后在HTML中:

<strong>16 January</strong> <script>document.write(printDate);</script>
1月16日文件。书写(打印日期);
现在的输出是“未定义的”。任何想法都将不胜感激

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
你知道如何获得
今天的
今天的
——所以你应该拥有你需要的一切

这应该让你开始正确的过程-你需要比较每个日历项目(第一个月,然后是第二天),以确定你在寻找什么

您需要的所有变量:

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

您知道如何获取今天和今天的月份,因此您应该拥有所需的一切。简化条件是:如果月份不是1月(不是0),或者日期在15日之后,则获取下一年:

var today=new Date,year=today.getFullYear();
如果(今天.getMonth()|今天.getDate()>15)年++;

对数(年)简化条件是:如果月份不是1月(不是0),或者日期在15号之后,则得到下一年:

var today=new Date,year=today.getFullYear();
如果(今天.getMonth()|今天.getDate()>15)年++;

对数(年)
你不能像今天这样比较日期
2016年1月1日
,@RedaMeskali谢谢。如何更正日期比较?(很抱歉是Javascript新手)原生Javascript为您提供了很少的日期比较选项。理论上,您可以编写自己的库来处理此问题,但已经有一个很棒的库,名为moment.js;请参考答案。@RedaMeskali我更改了上面的代码。它仍然不起作用,但我正在努力。你不能像今天这样比较日期。
<01/16
,@RedaMeskali谢谢。如何更正日期比较?(很抱歉是Javascript新手)原生Javascript为您提供了很少的日期比较选项。理论上,您可以编写自己的库来处理此问题,但已经有一个很棒的库,名为moment.js;请参考答案。@RedaMeskali我更改了上面的代码。它仍然不起作用,但我正在努力。谢谢@Slai。所以我写的所有代码都可以用这个简单的条件来代替?@是的,基本上没有控制台。谢谢。这是一个出色的编码。我接受了你的回答。再次感谢@SlaiI需要更舒适地使用console.log。看起来很有用。谢谢你的@Slai。所以我写的所有代码都可以用这个简单的条件来代替?@是的,基本上没有控制台。谢谢。这是一个出色的编码。我接受了你的回答。再次感谢@SlaiI需要更舒适地使用console.log。它似乎很有用。