根据时间显示不同的问候语的代码

摘要

 有几次半夜逛论坛的时候

 有几次半夜逛论坛的时候,有个温馨的提示「提示: 已经是夜里 0 点多了,为了您和家人的健康,请注意按时作息减少熬夜。」觉得不错,于是找了一下相关的代码和大家分享一下。


<SCRIPT language="JavaScript"><!----------- var enabled = 0; today = new Date(); var day; var date; if(today.getDay()==0) day = "星期日" if(today.getDay()==1) day = "星期一" if(today.getDay()==2) day = "星期二" if(today.getDay()==3) day = "星期三" if(today.getDay()==4) day = "星期四" if(today.getDay()==5) day = "星期五" if(today.getDay()==6) day = "星期六" document.fgColor = " FF0072"; date1 = "<font size=2 color=blu>" + (today.getYear()) + "年" + (today.getMonth() + 1 ) + "月" + today.getDate() + "日 " + "</font>"; date2 = "<font size=2 color=blu>" + day + "</font>"; document.write("<center>" + date1.fontsize(2) + date2.fontsize(2) + "</center>"); //-----></SCRIPT><SCRIPT language="JavaScript"><!--document.write("<center><font color=#0066ff size=2> ")day = new Date()hr = day.getHours()if (hr ==1)document.write("凌晨一点已过,别忘了休息喔!")if (hr ==2)document.write("该休息了,身体可是革命的本钱啊!")if (hr ==3)document.write("夜深人静,只有你敲击鼠标的声音...")if (hr ==4)document.write("四点过了,你明天不上班???")if (hr ==5)document.write("该去晨运了!!!")if (hr ==6)document.write("你知道吗,此时是国内网络速度最快的时候!")if (hr ==7)document.write("新的一天又开始了,祝你过得快乐!")if ((hr ==8) || (hr == 9) || (hr ==10))document.write("上午好!今天你看上去好精神哦!")if (hr ==11)document.write("十一点过了,快下班了吧?")if (hr ==12)document.write("十二点过了,该吃饭休息了?")if ((hr==13) || (hr==14))document.write("你不睡午觉?")if ((hr==15) || (hr==16) || (hr==17))document.write("下午好!")if ((hr==18) || (hr==19))document.write("18,19点这时候该吃晚饭啦")if ((hr==20) || (hr==21) || (hr==22))document.write("今晚又在这玩电脑了,没节目?")if (hr==23)document.write("23点了真是越玩越精神,不打算睡了?")if (hr==0)document.write("凌晨了,还不睡?")document.write("</font></center>")//---></SCRIPT>


  以上问候语、字形、大小、颜色可自由更改的。

 这段代码在Microsoft Internet Explorer中执行正常,输出2013年4月13日星期五,但在Mozilla Firefox浏览器中却显示为113年4月13日星期五,这个问题在其它许多网站上都存在,因为浏览器对于JS代码的解释是存在差异性的。


IE中:
today=new Date();
today.getYear()返回的是绝对的公元纪年,2013

代码中:
today=new Date();
today.getYear()返回的是相对绝对的年份,年份相对于1900,因为今年是2013,两者相减是113。

这个问题的根源在于2000年问题,以前年份的表示使用2位数字,在ECMAScript Language Specification的规范中是这么描述的Date对象的:

引用内容 引用内容Date.prototype.getYear ( )
NOTEThe getFullYear method is preferred for nearly all purposes, because it avoids the "year 2000 problem."When the getYear method is called with no arguments the following steps are taken:1. Let t be this time value.2. If t is NaN, return NaN.3. Return YearFromTime(LocalTime(t)) − 1900.

因此,为了最大范围的兼容性,使用getFullYear() 是正确的,在不同浏览器中都能正确计算。 就解决了获取年份的兼容性问题。

版权所有:《李明博客
文章标题:《根据时间显示不同的问候语的代码
除非注明,文章均为 《李明博客》 原创
转载请注明本文短网址:https://likinming.com/post-129.html  [生成短网址]

发表评论

注意:本博客开启缓存,你的评论一般2小时后才能看到,如是广告,评论将无法显示!

目前评论:3 条

  1. avatar 奶爸
    回复 2013-04-23 16:56  沙发

    不错不错。学习了。要的时候再来COPY

  2. avatar 爱冰
    回复 2013-04-20 16:34  板凳

    又看到了IE FF对时间的理解造成的笑话。。建议把代码中的也改成fullyear吧。。另外欢迎经常娶我的博客看看哦~

    • avatar 欣欣

      @爱冰:爱冰哥哥的错别字看笑我了