JS中Date对象getYear()和getFullYear()的区别
前一阵子在温习js的时候记录下来的一个知识点,今个有空就在博文总结分享下js中获取当前年份getYear()方法和getFullYear()方法的区别。
getYear()方法
getYear() 方法对于介于 1900 与 1999 之间的年份,getYear() 方法仅返回两位数字。对于 1900 之前或 1999 之后的年份,则返回 4 位数字。
<script type="text/javascript">
// 获取当前日期时间 Fri Sep 16 2016 11:43:20 GMT+0800 (中国标准时间)
var nowDate = new Date();
// 获取当前年份
var year = nowDate.getYear();
// IE浏览器显示2016 Fx chrome主流浏览器显示116 存在浏览器兼容问题
document.write(year);
</script>
因为存在浏览器兼容问题,从 ECMAScript v3 开始,JavaScript 的实现就不再使用该方法,而使用 getFullYear() 方法取而代之。
getFullYear()方法
getFullYear()方法返回的年份,返回值是一个四位数,表示包括世纪值在内的完整年份,而不是两位数的缩写形式。
<script type="text/javascript">
// 获取当前日期时间 Fri Sep 16 2016 11:43:20 GMT+0800 (中国标准时间)
var nowDate = new Date();
// 获取当前年份
var fullYear = nowDate.getFullYear();
// 所有浏览器显示2016
document.write(fullYear);
</script>
两者相互转换
虽然我们现在编码中推荐使用getFullYear() 方法,但是我们仍然需要做到如何去转换,让已过时的getYear()方法可以重新兼容浏览器。
刚刚代码结果可以看出,getYear()方法在IE浏览器和在主流Fx Chrome浏览器中显示的结果相差1900,所以我的转换做法是:
<script type="text/javascript">
// 获取当前日期时间
var nowDate = new Date();
// 获取当前年份
var myYears = (nowDate.getYear() < 1900 )?(nowDate.getYear() + 1900): nowDate.getYear();
// 打印显示2016
document.write(myYears);
</script>
看到这里想必你对两种方法的使用和理解更加透彻了吧,总结当中也是自我提升。
咳咳,还是那句话
还是要不断学习,因为你还很年轻